From 661c70323031442b5e08009109f84ab149168ba7 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Fri, 18 Oct 2019 17:38:47 -0700 Subject: [PATCH] Updated behavior, so processes spawned as detached, will not try to kill process in the finalizer --- microscript/ILibDuktape_ChildProcess.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/microscript/ILibDuktape_ChildProcess.c b/microscript/ILibDuktape_ChildProcess.c index 54a6795..9e56b98 100644 --- a/microscript/ILibDuktape_ChildProcess.c +++ b/microscript/ILibDuktape_ChildProcess.c @@ -219,12 +219,13 @@ ILibDuktape_ChildProcess_SubProcess* ILibDuktape_ChildProcess_SpawnedProcess_PUS ILibDuktape_EventEmitter_CreateEventEx(emitter, "exit"); ILibDuktape_EventEmitter_CreateEventEx(emitter, "error"); - ILibDuktape_EventEmitter_PrependOnce(ctx, -1, "~", ILibDuktape_ChildProcess_SpawnedProcess_Finalizer); ILibDuktape_CreateInstanceMethod(ctx, "kill", ILibDuktape_ChildProcess_Kill, 0); ILibDuktape_CreateInstanceMethod(ctx, "waitExit", ILibDuktape_ChildProcess_waitExit, DUK_VARARGS); if (ILibProcessPipe_Process_IsDetached(mProcess) == 0) { + ILibDuktape_EventEmitter_PrependOnce(ctx, -1, "~", ILibDuktape_ChildProcess_SpawnedProcess_Finalizer); // Kill child if object is collected while process is alive + duk_push_object(ctx); ILibDuktape_WriteID(ctx, "childProcess.subProcess.stdout"); duk_dup(ctx, -2);