1 /** @file
2     @brief compat_alarm adds an alarm() function for Windows.
3 
4     Except for MinGW-w64 when `_POSIX` and/or `__USE_MINGW_ALARM`
5     is defined
6  */
7 
8 #ifndef INCLUDE_COMPAT_ALARM_H_
9 #define INCLUDE_COMPAT_ALARM_H_
10 
11 #ifdef _WIN32
12 #include <windows.h>
13 #include <signal.h>
14 #include <io.h>    /* alarm() for MinGW is possibly here */
15 
16 #if !defined(_POSIX) && !defined(__USE_MINGW_ALARM)
17 int win_alarm(unsigned seconds);
18 #define alarm(sec)  win_alarm(sec)
19 #define HAVE_win_alarm
20 #endif
21 
22 /* No SIGUSRx on Windows. Use this unless MinGW-w64
23  * has support for it (untested by me).
24  */
25 #if !defined(__USE_MINGW_ALARM)
26 #define SIGALRM  SIGBREAK
27 #endif
28 
29 #endif  /* _WIN32 */
30 #endif  /* INCLUDE_COMPAT_ALARM_H_ */
31