summaryrefslogtreecommitdiff
path: root/src/async_wrap.cc
diff options
context:
space:
mode:
authorAndreas Madsen <amwebdk@gmail.com>2017-11-22 18:41:00 +0100
committerAndreas Madsen <amwebdk@gmail.com>2017-12-19 18:04:52 +0100
commit3b8da4cbe8a7f36fcd8892c6676a55246ba8c3be (patch)
tree1afc84002d1716f4acd28126df214127e0262c3c /src/async_wrap.cc
parent0784b0440c05464f79b857f7d8698fcc953d3fb3 (diff)
downloadandroid-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.cc11
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);