diff options
author | Anna Henningsen <anna@addaleax.net> | 2018-12-04 12:39:30 +0100 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-01-12 20:10:04 +0100 |
commit | 4da7e6e228766454912a4de5dc6f037da8223e53 (patch) | |
tree | eb60d4a391fc3ed6cad314cb2662ebb9b7b1d9a6 /src/node_internals.h | |
parent | 92e95f17b64838d4cf77343c1a814d4ebd795217 (diff) | |
download | android-node-v8-4da7e6e228766454912a4de5dc6f037da8223e53.tar.gz android-node-v8-4da7e6e228766454912a4de5dc6f037da8223e53.tar.bz2 android-node-v8-4da7e6e228766454912a4de5dc6f037da8223e53.zip |
src: dispose of V8 platform in `process.exit()`
Calling `process.exit()` calls the C `exit()` function, which in turn
calls the destructors of static C++ objects. This can lead to race
conditions with other concurrently executing threads; disposing of all
Worker threads and then the V8 platform instance helps with this
(although it might not be a full solution for all problems of
this kind).
Refs: https://github.com/nodejs/node/issues/24403
Refs: https://github.com/nodejs/node/issues/25007
PR-URL: https://github.com/nodejs/node/pull/25061
Reviewed-By: Gireesh Punathil <gpunathi@in.ibm.com>
Reviewed-By: Joyee Cheung <joyeec9h3@gmail.com>
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Diffstat (limited to 'src/node_internals.h')
-rw-r--r-- | src/node_internals.h | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/src/node_internals.h b/src/node_internals.h index 0b0c97f8c8..fc27b384ec 100644 --- a/src/node_internals.h +++ b/src/node_internals.h @@ -345,6 +345,7 @@ int ThreadPoolWork::CancelWork() { } tracing::AgentWriterHandle* GetTracingAgentWriter(); +void DisposePlatform(); static inline const char* errno_string(int errorno) { #define ERRNO_CASE(e) case e: return #e; |