]> git.lizzy.rs Git - dragonblocks_alpha.git/blob - src/interrupt.c
c11c3cda4f151832cba17342725e3b123b24a9a7
[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         flag_ini(&interrupt);
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_dst(&interrupt);
27 }