From 19e3e02a2db996a3df36e00df6c6b57cec516c9e Mon Sep 17 00:00:00 2001 From: Joyee Cheung Date: Thu, 18 Apr 2019 10:58:58 +0800 Subject: [PATCH] src: move SIGINT watchdog utils to the contextify binding These are used when evaluating scripts so it makes more sense to put them in the contextify binding whose other methods are going to be used together. PR-URL: https://github.com/nodejs/node/pull/27290 Reviewed-By: Daniel Bevenius Reviewed-By: Yongsheng Zhang Reviewed-By: Ruben Bridgewater Reviewed-By: James M Snell --- lib/repl.js | 7 +++++-- src/node_contextify.cc | 20 ++++++++++++++++++ src/node_util.cc | 24 ---------------------- test/parallel/test-util-sigint-watchdog.js | 2 +- 4 files changed, 26 insertions(+), 27 deletions(-) diff --git a/lib/repl.js b/lib/repl.js index 7140e1b56c3..a7eb22e396e 100644 --- a/lib/repl.js +++ b/lib/repl.js @@ -87,10 +87,13 @@ const { propertyFilter: { ALL_PROPERTIES, SKIP_SYMBOLS - }, + } +} = internalBinding('util'); +const { startSigintWatchdog, stopSigintWatchdog -} = internalBinding('util'); +} = internalBinding('contextify'); + const history = require('internal/repl/history'); // Lazy-loaded. diff --git a/src/node_contextify.cc b/src/node_contextify.cc index 25b8b28ecd5..f8d43e062ee 100644 --- a/src/node_contextify.cc +++ b/src/node_contextify.cc @@ -1141,6 +1141,20 @@ void ContextifyContext::CompileFunction( args.GetReturnValue().Set(fn); } +static void StartSigintWatchdog(const FunctionCallbackInfo& args) { + int ret = SigintWatchdogHelper::GetInstance()->Start(); + args.GetReturnValue().Set(ret == 0); +} + +static void StopSigintWatchdog(const FunctionCallbackInfo& args) { + bool had_pending_signals = SigintWatchdogHelper::GetInstance()->Stop(); + args.GetReturnValue().Set(had_pending_signals); +} + +static void WatchdogHasPendingSigint(const FunctionCallbackInfo& args) { + bool ret = SigintWatchdogHelper::GetInstance()->HasPendingSignal(); + args.GetReturnValue().Set(ret); +} void Initialize(Local target, Local unused, @@ -1149,6 +1163,12 @@ void Initialize(Local target, Environment* env = Environment::GetCurrent(context); ContextifyContext::Init(env, target); ContextifyScript::Init(env, target); + + env->SetMethod(target, "startSigintWatchdog", StartSigintWatchdog); + env->SetMethod(target, "stopSigintWatchdog", StopSigintWatchdog); + // Used in tests. + env->SetMethodNoSideEffect( + target, "watchdogHasPendingSigint", WatchdogHasPendingSigint); } } // namespace contextify diff --git a/src/node_util.cc b/src/node_util.cc index d13624a436a..961df0b73c3 100644 --- a/src/node_util.cc +++ b/src/node_util.cc @@ -1,5 +1,4 @@ #include "node_errors.h" -#include "node_watchdog.h" #include "util.h" #include "base_object-inl.h" @@ -157,24 +156,6 @@ static void SetHiddenValue(const FunctionCallbackInfo& args) { args.GetReturnValue().Set(maybe_value.FromJust()); } - -void StartSigintWatchdog(const FunctionCallbackInfo& args) { - int ret = SigintWatchdogHelper::GetInstance()->Start(); - args.GetReturnValue().Set(ret == 0); -} - - -void StopSigintWatchdog(const FunctionCallbackInfo& args) { - bool had_pending_signals = SigintWatchdogHelper::GetInstance()->Stop(); - args.GetReturnValue().Set(had_pending_signals); -} - - -void WatchdogHasPendingSigint(const FunctionCallbackInfo& args) { - bool ret = SigintWatchdogHelper::GetInstance()->HasPendingSignal(); - args.GetReturnValue().Set(ret); -} - void ArrayBufferViewHasBuffer(const FunctionCallbackInfo& args) { CHECK(args[0]->IsArrayBufferView()); args.GetReturnValue().Set(args[0].As()->HasBuffer()); @@ -281,11 +262,6 @@ void Initialize(Local target, env->SetMethodNoSideEffect(target, "getOwnNonIndexProperties", GetOwnNonIndexProperties); - env->SetMethod(target, "startSigintWatchdog", StartSigintWatchdog); - env->SetMethod(target, "stopSigintWatchdog", StopSigintWatchdog); - env->SetMethodNoSideEffect(target, "watchdogHasPendingSigint", - WatchdogHasPendingSigint); - env->SetMethod(target, "arrayBufferViewHasBuffer", ArrayBufferViewHasBuffer); Local constants = Object::New(env->isolate()); NODE_DEFINE_CONSTANT(constants, ALL_PROPERTIES); diff --git a/test/parallel/test-util-sigint-watchdog.js b/test/parallel/test-util-sigint-watchdog.js index 7ac1261eaba..67a8f61539c 100644 --- a/test/parallel/test-util-sigint-watchdog.js +++ b/test/parallel/test-util-sigint-watchdog.js @@ -8,7 +8,7 @@ if (common.isWindows) { const assert = require('assert'); const { internalBinding } = require('internal/test/binding'); -const binding = internalBinding('util'); +const binding = internalBinding('contextify'); [(next) => { // Test with no signal observed.