diff options
author | Anna Henningsen <anna@addaleax.net> | 2019-03-10 22:03:15 +0000 |
---|---|---|
committer | Anna Henningsen <anna@addaleax.net> | 2019-03-21 19:09:45 +0100 |
commit | 96c3224de0e938d308ab579e4cf7336e87c67d88 (patch) | |
tree | 3f556d5c7bfb5d9be23fb20c8ebe0514a33a5d5e /src/env.cc | |
parent | 1500e5de64e4f7cfb482ad353293645a5599d93f (diff) | |
download | node-new-96c3224de0e938d308ab579e4cf7336e87c67d88.tar.gz |
src: remove `AddPromiseHook()`
Remove this, as the underlying `Isolate::SetPromiseHook()` may be
removed as well in its current form in the future, and `async_hooks`
also serves this use case.
Refs: https://docs.google.com/document/d/1g8OrG5lMIUhRn1zbkutgY83MiTSMx-0NHDs8Bf-nXxM/
Refs: https://github.com/nodejs/node/pull/26529
PR-URL: https://github.com/nodejs/node/pull/26574
Reviewed-By: Ben Noordhuis <info@bnoordhuis.nl>
Reviewed-By: Colin Ihrig <cjihrig@gmail.com>
Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com>
Reviewed-By: Gus Caplan <me@gus.host>
Reviewed-By: James M Snell <jasnell@gmail.com>
Reviewed-By: Ali Ijaz Sheikh <ofrobots@google.com>
Diffstat (limited to 'src/env.cc')
-rw-r--r-- | src/env.cc | 71 |
1 files changed, 0 insertions, 71 deletions
diff --git a/src/env.cc b/src/env.cc index 768e14d796..f0dd9abeb6 100644 --- a/src/env.cc +++ b/src/env.cc @@ -39,8 +39,6 @@ using v8::NewStringType; using v8::Number; using v8::Object; using v8::Private; -using v8::Promise; -using v8::PromiseHookType; using v8::StackFrame; using v8::StackTrace; using v8::String; @@ -50,25 +48,6 @@ using v8::Undefined; using v8::Value; using worker::Worker; -// TODO(@jasnell): Likely useful to move this to util or node_internal to -// allow reuse. But since we're not reusing it yet... -class TraceEventScope { - public: - TraceEventScope(const char* category, - const char* name, - void* id) : category_(category), name_(name), id_(id) { - TRACE_EVENT_NESTABLE_ASYNC_BEGIN0(category_, name_, id_); - } - ~TraceEventScope() { - TRACE_EVENT_NESTABLE_ASYNC_END0(category_, name_, id_); - } - - private: - const char* category_; - const char* name_; - void* id_; -}; - int const Environment::kNodeContextTag = 0x6e6f64; void* const Environment::kNodeContextTagPtr = const_cast<void*>( static_cast<const void*>(&Environment::kNodeContextTag)); @@ -590,56 +569,6 @@ void Environment::AtExit(void (*cb)(void* arg), void* arg) { at_exit_functions_.push_back(ExitCallback{cb, arg}); } -void Environment::AddPromiseHook(promise_hook_func fn, void* arg) { - auto it = std::find_if( - promise_hooks_.begin(), promise_hooks_.end(), - [&](const PromiseHookCallback& hook) { - return hook.cb_ == fn && hook.arg_ == arg; - }); - if (it != promise_hooks_.end()) { - it->enable_count_++; - return; - } - promise_hooks_.push_back(PromiseHookCallback{fn, arg, 1}); - - if (promise_hooks_.size() == 1) { - isolate_->SetPromiseHook(EnvPromiseHook); - } -} - -bool Environment::RemovePromiseHook(promise_hook_func fn, void* arg) { - auto it = std::find_if( - promise_hooks_.begin(), promise_hooks_.end(), - [&](const PromiseHookCallback& hook) { - return hook.cb_ == fn && hook.arg_ == arg; - }); - - if (it == promise_hooks_.end()) return false; - - if (--it->enable_count_ > 0) return true; - - promise_hooks_.erase(it); - if (promise_hooks_.empty()) { - isolate_->SetPromiseHook(nullptr); - } - - return true; -} - -void Environment::EnvPromiseHook(PromiseHookType type, - Local<Promise> promise, - Local<Value> parent) { - Local<Context> context = promise->CreationContext(); - - Environment* env = Environment::GetCurrent(context); - if (env == nullptr) return; - TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), - "EnvPromiseHook", env); - for (const PromiseHookCallback& hook : env->promise_hooks_) { - hook.cb_(type, promise, parent, hook.arg_); - } -} - void Environment::RunAndClearNativeImmediates() { TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment), "RunAndClearNativeImmediates", this); |