From 28b362adfc49324e20af5ecb1530f89eb91c4ed5 Mon Sep 17 00:00:00 2001 From: Nathan Whitaker <17734409+nathanwhit@users.noreply.github.com> Date: Mon, 11 Mar 2024 10:22:28 -0700 Subject: fix(runtime): Restore default signal handler after user handlers are unregistered (#22757) Fixes #22724. Fixes #7164. This does add a dependency on `signal-hook`, but it's just a higher level API on top of `signal-hook-registry` (which we and `tokio` already depend on) and doesn't add any transitive deps. --- tests/unit/signal_test.ts | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'tests/unit') diff --git a/tests/unit/signal_test.ts b/tests/unit/signal_test.ts index 2ba2ffb15..1d9b10ae7 100644 --- a/tests/unit/signal_test.ts +++ b/tests/unit/signal_test.ts @@ -172,10 +172,20 @@ Deno.test( } // Sends SIGUSR1 (irrelevant signal) 3 times. + // By default SIGUSR1 terminates, so set it to a no-op for this test. + let count = 0; + const irrelevant = () => { + count++; + }; + Deno.addSignalListener("SIGUSR1", irrelevant); for (const _ of Array(3)) { await delay(20); Deno.kill(Deno.pid, "SIGUSR1"); } + while (count < 3) { + await delay(20); + } + Deno.removeSignalListener("SIGUSR1", irrelevant); // No change assertEquals(c, "010101000"); -- cgit v1.2.3