From 26cf06ed9f5c0ffa42afff3dbe29533ddcb2fbf7 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Wed, 20 Dec 2023 07:55:09 +0530 Subject: fix(node): child_process kill cancel pending IPC reads (#21647) --- cli/tests/unit_node/child_process_test.ts | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) (limited to 'cli/tests') diff --git a/cli/tests/unit_node/child_process_test.ts b/cli/tests/unit_node/child_process_test.ts index 79617cf3d..421e66dfd 100644 --- a/cli/tests/unit_node/child_process_test.ts +++ b/cli/tests/unit_node/child_process_test.ts @@ -731,3 +731,26 @@ Deno.test(function spawnSyncExitNonZero() { assertEquals(ret.status, 22); }); + +// https://github.com/denoland/deno/issues/21630 +Deno.test(async function forkIpcKillDoesNotHang() { + const testdataDir = path.join( + path.dirname(path.fromFileUrl(import.meta.url)), + "testdata", + ); + const script = path.join( + testdataDir, + "node_modules", + "foo", + "index.js", + ); + const p = Promise.withResolvers(); + const cp = CP.fork(script, [], { + cwd: testdataDir, + stdio: ["inherit", "inherit", "inherit", "ipc"], + }); + cp.on("close", () => p.resolve()); + cp.kill(); + + await p.promise; +}); -- cgit v1.2.3