diff options
author | Andreas Madsen <amwebdk@gmail.com> | 2017-11-22 18:41:00 +0100 |
---|---|---|
committer | Andreas Madsen <amwebdk@gmail.com> | 2017-12-19 18:04:52 +0100 |
commit | 3b8da4cbe8a7f36fcd8892c6676a55246ba8c3be (patch) | |
tree | 1afc84002d1716f4acd28126df214127e0262c3c /src/async_wrap.cc | |
parent | 0784b0440c05464f79b857f7d8698fcc953d3fb3 (diff) | |
download | android-node-v8-3b8da4cbe8a7f36fcd8892c6676a55246ba8c3be.tar.gz android-node-v8-3b8da4cbe8a7f36fcd8892c6676a55246ba8c3be.tar.bz2 android-node-v8-3b8da4cbe8a7f36fcd8892c6676a55246ba8c3be.zip |
async_hooks: use scope for defaultTriggerAsyncId
Previously the getter would mutate the kDefaultTriggerAsncId value. This
refactor changes the setter to bind the current kDefaultTriggerAsncId to
a scope, such that the getter doesn't have to mutate its own value.
PR-URL: https://github.com/nodejs/node/pull/17273
Reviewed-By: Matteo Collina <matteo.collina@gmail.com>
Reviewed-By: James M Snell <jasnell@gmail.com>
Diffstat (limited to 'src/async_wrap.cc')
-rw-r--r-- | src/async_wrap.cc | 11 |
1 files changed, 6 insertions, 5 deletions
diff --git a/src/async_wrap.cc b/src/async_wrap.cc index 555d616426..79d54b1000 100644 --- a/src/async_wrap.cc +++ b/src/async_wrap.cc @@ -308,12 +308,13 @@ static void PromiseHook(PromiseHookType type, Local<Promise> promise, if (parent_wrap == nullptr) { parent_wrap = PromiseWrap::New(env, parent_promise, nullptr, true); } - // get id from parentWrap - double trigger_async_id = parent_wrap->get_async_id(); - env->set_default_trigger_async_id(trigger_async_id); - } - wrap = PromiseWrap::New(env, promise, parent_wrap, silent); + AsyncHooks::DefaultTriggerAsyncIdScope trigger_scope( + env, parent_wrap->get_async_id()); + wrap = PromiseWrap::New(env, promise, parent_wrap, silent); + } else { + wrap = PromiseWrap::New(env, promise, nullptr, silent); + } } CHECK_NE(wrap, nullptr); |