summaryrefslogtreecommitdiffstats
path: root/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'signal.c')
-rw-r--r--signal.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/signal.c b/signal.c
index ef64c64e..2bab8ad8 100644
--- a/signal.c
+++ b/signal.c
@@ -94,6 +94,8 @@ static void sig_handler(int sig)
if (!in_interrupt && async_sig_enabled) {
uw_simple_catch_begin;
async_sig_enabled = 0;
+ if (gc_inprogress())
+ gc_cancel();
if (funcall2(lambda, num_fast(sig), t))
sig_deferred |= (1UL << sig);
uw_unwind {