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:
Ben Noordhuis
2020-05-16 11:39:53 +02:00
committed by Ruben Bridgewater
parent a3f47b1114
commit 8ddb6aa886
3 changed files with 4 additions and 24 deletions

View File

@@ -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());

View File

@@ -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);

View File

@@ -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_;