From 9678cac797ca82eaa1a70e6a6c4d570d6a7bce0d Mon Sep 17 00:00:00 2001 From: Elias Fleckenstein Date: Sun, 24 Apr 2022 17:55:53 +0200 Subject: [PATCH] Add win32 workaround for signal code --- src/interrupt.c | 26 +++++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/src/interrupt.c b/src/interrupt.c index c11c3cd..2b9052c 100644 --- a/src/interrupt.c +++ b/src/interrupt.c @@ -4,7 +4,25 @@ #include "interrupt.h" Flag interrupt; -static struct sigaction sa = {0}; + +#ifdef _WIN32 + +// just the signals we need, for Win32 +static const char *strsignal(int sig) +{ + switch (sig) { + case SIGINT: + return "Interrupted"; + + case SIGTERM: + return "Terminated"; + + default: + return "Unknown signal"; + } +} + +#endif // _WIN32 static void interrupt_handler(int sig) { @@ -16,9 +34,15 @@ void interrupt_init() { flag_ini(&interrupt); +#ifdef _WIN32 + signal(SIGINT, interrupt_handler); + signal(SIGTERM, interrupt_handler); +#else // _WIN32 + struct sigaction sa = {0}; sa.sa_handler = &interrupt_handler; sigaction(SIGINT, &sa, NULL); sigaction(SIGTERM, &sa, NULL); +#endif // _WIN32 } void interrupt_deinit() -- 2.44.0