diff options
author | Anna Henningsen <anna@addaleax.net> | 2017-09-01 17:03:41 +0200 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2018-06-06 19:43:52 +0200 |
commit | 0df031acadcc6490379d72676203a980c8d60592 (patch) | |
tree | 3f49864e72b0193ea9af937874f62c6316877ec4 /src/node_messaging.h | |
parent | 8939f36630bd718fc0b0b8557cf7f2ed9ecab312 (diff) | |
download | android-node-v8-0df031acadcc6490379d72676203a980c8d60592.tar.gz android-node-v8-0df031acadcc6490379d72676203a980c8d60592.tar.bz2 android-node-v8-0df031acadcc6490379d72676203a980c8d60592.zip |
worker: initial implementation
Implement multi-threading support for most of the API.
Thanks to Stephen Belanger for reviewing this change in its
original form, to Olivia Hugger for reviewing the
documentation and some of the tests coming along with it,
and to Alexey Orlenko and Timothy Gu for reviewing other
parts of the tests.
Refs: https://github.com/ayojs/ayo/pull/110
Refs: https://github.com/ayojs/ayo/pull/114
Refs: https://github.com/ayojs/ayo/pull/117
PR-URL: https://github.com/nodejs/node/pull/20876
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Shingo Inoue <leko.noor@gmail.com>
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: Tiancheng "Timothy" Gu <timothygu99@gmail.com>
Reviewed-By: John-David Dalton <john.david.dalton@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Diffstat (limited to 'src/node_messaging.h')
-rw-r--r-- | src/node_messaging.h | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/src/node_messaging.h b/src/node_messaging.h index ff8fcc7243..9a13437d19 100644 --- a/src/node_messaging.h +++ b/src/node_messaging.h @@ -133,11 +133,15 @@ class MessagePort : public HandleWrap { void Start(); // Stop processing messages on this port as a receiving end. void Stop(); + // Stop processing messages on this port as a receiving end, + // and stop the event loop that this port is associated with. + void StopEventLoop(); static void New(const v8::FunctionCallbackInfo<v8::Value>& args); static void PostMessage(const v8::FunctionCallbackInfo<v8::Value>& args); static void Start(const v8::FunctionCallbackInfo<v8::Value>& args); static void Stop(const v8::FunctionCallbackInfo<v8::Value>& args); + static void Drain(const v8::FunctionCallbackInfo<v8::Value>& args); // Turns `a` and `b` into siblings, i.e. connects the sending side of one // to the receiving side of the other. This is not thread-safe. @@ -160,6 +164,7 @@ class MessagePort : public HandleWrap { inline uv_async_t* async(); std::unique_ptr<MessagePortData> data_ = nullptr; + bool stop_event_loop_ = false; friend class MessagePortData; }; |