aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/os/signal.c19
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);
+ }
+
}