mirror of
https://github.com/zebrajr/node.git
synced 2026-01-15 12:15:26 +00:00
src: remove BeforeExit callback list
It obscures the fact that there is only a single BeforeExit action. Just call that statically from `EmitBeforeExit()`. PR-URL: https://github.com/nodejs/node/pull/33386 Reviewed-By: Colin Ihrig <cjihrig@gmail.com> Reviewed-By: Richard Lau <riclau@uk.ibm.com> Reviewed-By: Benjamin Gruenbaum <benjamingr@gmail.com> Reviewed-By: Anna Henningsen <anna@addaleax.net> Reviewed-By: James M Snell <jasnell@gmail.com>
This commit is contained in:
committed by
Ruben Bridgewater
parent
a3f47b1114
commit
8ddb6aa886
@@ -30,7 +30,10 @@ void AtExit(Environment* env, void (*cb)(void* arg), void* arg) {
|
||||
}
|
||||
|
||||
void EmitBeforeExit(Environment* env) {
|
||||
env->RunBeforeExitCallbacks();
|
||||
TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment),
|
||||
"BeforeExit", env);
|
||||
if (!env->destroy_async_id_list()->empty())
|
||||
AsyncWrap::DestroyAsyncIdsCallback(env);
|
||||
|
||||
HandleScope handle_scope(env->isolate());
|
||||
Context::Scope context_scope(env->context());
|
||||
|
||||
20
src/env.cc
20
src/env.cc
@@ -373,13 +373,6 @@ Environment::Environment(IsolateData* isolate_data,
|
||||
}
|
||||
|
||||
destroy_async_id_list_.reserve(512);
|
||||
BeforeExit(
|
||||
[](void* arg) {
|
||||
Environment* env = static_cast<Environment*>(arg);
|
||||
if (!env->destroy_async_id_list()->empty())
|
||||
AsyncWrap::DestroyAsyncIdsCallback(env);
|
||||
},
|
||||
this);
|
||||
|
||||
performance_state_ =
|
||||
std::make_unique<performance::PerformanceState>(isolate());
|
||||
@@ -677,19 +670,6 @@ void Environment::RunCleanup() {
|
||||
}
|
||||
}
|
||||
|
||||
void Environment::RunBeforeExitCallbacks() {
|
||||
TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment),
|
||||
"BeforeExit", this);
|
||||
for (ExitCallback before_exit : before_exit_functions_) {
|
||||
before_exit.cb_(before_exit.arg_);
|
||||
}
|
||||
before_exit_functions_.clear();
|
||||
}
|
||||
|
||||
void Environment::BeforeExit(void (*cb)(void* arg), void* arg) {
|
||||
before_exit_functions_.push_back(ExitCallback{cb, arg});
|
||||
}
|
||||
|
||||
void Environment::RunAtExitCallbacks() {
|
||||
TraceEventScope trace_scope(TRACING_CATEGORY_NODE1(environment),
|
||||
"AtExit", this);
|
||||
|
||||
@@ -1103,8 +1103,6 @@ class Environment : public MemoryRetainer {
|
||||
const char* name,
|
||||
v8::FunctionCallback callback);
|
||||
|
||||
void BeforeExit(void (*cb)(void* arg), void* arg);
|
||||
void RunBeforeExitCallbacks();
|
||||
void AtExit(void (*cb)(void* arg), void* arg);
|
||||
void RunAtExitCallbacks();
|
||||
|
||||
@@ -1362,7 +1360,6 @@ class Environment : public MemoryRetainer {
|
||||
void (*cb_)(void* arg);
|
||||
void* arg_;
|
||||
};
|
||||
std::list<ExitCallback> before_exit_functions_;
|
||||
|
||||
std::list<ExitCallback> at_exit_functions_;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user