fix: destroy parent port backend when JS env exits (#46437)

* fix: destroy parent port backend when JS env exits

* fix: close parent port before destroying

---------

Co-authored-by: deepak1556 <hop2deep@gmail.com>
This commit is contained in:
Shelley Vohr
2025-04-04 18:02:54 +02:00
committed by GitHub
parent e81e3acd2d
commit c2ae4afb8f
3 changed files with 8 additions and 3 deletions

View File

@@ -96,6 +96,7 @@ NodeService::NodeService(
NodeService::~NodeService() {
if (!node_env_stopped_) {
node_env_->set_trace_sync_io(false);
ParentPort::GetInstance()->Close();
js_env_->DestroyMicrotasksRunner();
node::Stop(node_env_.get(), node::StopFlags::kDoNotTerminateIsolate);
}
@@ -147,6 +148,7 @@ void NodeService::Initialize(
node_env_.get(), [this](node::Environment* env, int exit_code) {
// Destroy node platform.
env->set_trace_sync_io(false);
ParentPort::GetInstance()->Close();
js_env_->DestroyMicrotasksRunner();
node::Stop(env, node::StopFlags::kDoNotTerminateIsolate);
node_env_stopped_ = true;