diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/os/signal.c | 19 |
1 files changed, 14 insertions, 5 deletions
diff --git a/src/os/signal.c b/src/os/signal.c index 4b14090c56..966afa0d90 100644 --- a/src/os/signal.c +++ b/src/os/signal.c @@ -148,9 +148,18 @@ static void deadly_signal(int signum) static void signal_cb(uv_signal_t *handle, int signum) { - Event *event = (Event *)xmalloc(sizeof(Event)); - event->type = kEventSignal; - event->data = xmalloc(sizeof(int)); - *(int *)event->data = signum; - event_push(event); + Event *event; + + if (rejecting_deadly) { + if (signum == SIGINT) { + got_int = TRUE; + } + } else { + event = (Event *)xmalloc(sizeof(Event)); + event->type = kEventSignal; + event->data = xmalloc(sizeof(int)); + *(int *)event->data = signum; + event_push(event); + } + } |