]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/interrupt.c
2fb1d0181cc309690a886744778e90222e492af4
[dragonblocks_alpha.git] / src / interrupt.c
1 #include <signal.h>
2 #include <stdio.h>
3 #include <string.h>
4 #include "interrupt.h"
5
6 Flag *interrupt;
7 static struct sigaction sa = {0};
8
9 static void interrupt_handler(int sig)
10 {
11         fprintf(stderr, "%s\n", strsignal(sig));
12         flag_set(interrupt);
13 }
14
15 void interrupt_init()
16 {
17         interrupt = flag_create();
18
19         sa.sa_handler = &interrupt_handler;
20         sigaction(SIGINT, &sa, NULL);
21         sigaction(SIGTERM, &sa, NULL);
22 }
23
24 void interrupt_deinit()
25 {
26         flag_delete(interrupt);
27 }