From 14ebda52184149f75e84db73054c787b5541d38a Mon Sep 17 00:00:00 2001 From: Cheng Zhao Date: Mon, 13 Nov 2017 11:41:20 +0900 Subject: [PATCH] src: add public API for managing NodePlatform PR-URL: https://github.com/nodejs/node/pull/16981 Reviewed-By: Anna Henningsen Reviewed-By: Refael Ackermann Reviewed-By: James M Snell Reviewed-By: Colin Ihrig --- src/node.cc | 12 ++++++++++++ src/node.h | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/node.cc b/src/node.cc index 21c2dc849a2dd9..ad2e3df933dc23 100644 --- a/src/node.cc +++ b/src/node.cc @@ -4769,6 +4769,18 @@ void FreeEnvironment(Environment* env) { } +MultiIsolatePlatform* CreatePlatform( + int thread_pool_size, + v8::TracingController* tracing_controller) { + return new NodePlatform(thread_pool_size, tracing_controller); +} + + +void FreePlatform(MultiIsolatePlatform* platform) { + delete platform; +} + + Local NewContext(Isolate* isolate, Local object_template) { auto context = Context::New(isolate, nullptr, object_template); diff --git a/src/node.h b/src/node.h index 89dac0c0a8491d..8ef97bbffa83ff 100644 --- a/src/node.h +++ b/src/node.h @@ -97,6 +97,11 @@ // Forward-declare libuv loop struct uv_loop_s; +// Forward-declare TracingController, used by CreatePlatform. +namespace v8 { +class TracingController; +} + // Forward-declare these functions now to stop MSVS from becoming // terminally confused when it's done in node_internals.h namespace node { @@ -244,6 +249,11 @@ NODE_EXTERN Environment* CreateEnvironment(IsolateData* isolate_data, NODE_EXTERN void LoadEnvironment(Environment* env); NODE_EXTERN void FreeEnvironment(Environment* env); +NODE_EXTERN MultiIsolatePlatform* CreatePlatform( + int thread_pool_size, + v8::TracingController* tracing_controller); +NODE_EXTERN void FreePlatform(MultiIsolatePlatform* platform); + NODE_EXTERN void EmitBeforeExit(Environment* env); NODE_EXTERN int EmitExit(Environment* env); NODE_EXTERN void RunAtExit(Environment* env);