From 0e84e5698dd9d7095f5db876cc2bff58d3ff2231 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 --- src/node.cc | 12 ++++++++++++ src/node.h | 10 ++++++++++ 2 files changed, 22 insertions(+) diff --git a/src/node.cc b/src/node.cc index 05120fbde1fb1a..7e1c23f91299ea 100644 --- a/src/node.cc +++ b/src/node.cc @@ -4490,6 +4490,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 3cf5692f6b2975..7e1d5e19cd829c 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);