From ff877e93e16971ab8514772bd8d112e240b74803 Mon Sep 17 00:00:00 2001 From: Liang-Chi Hsieh Date: Thu, 10 Sep 2015 00:41:15 +0800 Subject: [PATCH] src: fix stuck debugger process The debug process running "node debug a.js" will be stuck when the script ends. This is because the debug handler has been unrefed. We shouldn't unref the debug handler to avoid this problem. PR-URL: https://github.com/nodejs/node/pull/2778 Reviewed-By: Ben Noordhuis --- src/node.cc | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/node.cc b/src/node.cc index e5a87e711bd84b..91e8c169741b89 100644 --- a/src/node.cc +++ b/src/node.cc @@ -3652,7 +3652,6 @@ void Init(int* argc, uv_async_init(uv_default_loop(), &dispatch_debug_messages_async, DispatchDebugMessagesAsyncCallback); - uv_unref(reinterpret_cast(&dispatch_debug_messages_async)); #if defined(NODE_V8_OPTIONS) // Should come before the call to V8::SetFlagsFromCommandLine() @@ -3959,8 +3958,11 @@ static void StartNodeInstance(void* arg) { env->set_trace_sync_io(trace_sync_io); // Enable debugger - if (instance_data->use_debug_agent()) + if (instance_data->use_debug_agent()) { EnableDebug(env); + } else { + uv_unref(reinterpret_cast(&dispatch_debug_messages_async)); + } { SealHandleScope seal(isolate);