From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001 From: Shelley Vohr Date: Thu, 10 Dec 2020 14:39:33 -0800 Subject: fix: add SafeForTerminationScopes for SIGINT interruptions MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit We start Node.js with only_terminate_in_safe_scope set to true becuase it's set by gin’s IsolateHolder. In those cases, parts of the API that expect execution termination to happen need to be marked as able to receive those events. Upstreamed at https://github.com/nodejs/node/pull/36344. diff --git a/src/module_wrap.cc b/src/module_wrap.cc index f778b089dc4009912361342077793e7918286de3..9302fa6f68d83717a02b82891466ce12b6af2cfd 100644 --- a/src/module_wrap.cc +++ b/src/module_wrap.cc @@ -350,6 +350,7 @@ void ModuleWrap::Evaluate(const FunctionCallbackInfo& args) { ShouldNotAbortOnUncaughtScope no_abort_scope(env); TryCatchScope try_catch(env); + Isolate::SafeForTerminationScope safe_for_termination(env->isolate()); bool timed_out = false; bool received_signal = false; diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 848e883a829a9725649d837bff09b30156f4f661..a69570400cd897699b1033102767b3389ff8ef38 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -933,6 +933,7 @@ bool ContextifyScript::EvalMachine(Environment* env, return false; } TryCatchScope try_catch(env); + Isolate::SafeForTerminationScope safe_for_termination(env->isolate()); ContextifyScript* wrapped_script; ASSIGN_OR_RETURN_UNWRAP(&wrapped_script, args.Holder(), false); Local unbound_script =