| // Define Py_NSIG constant for signal handling. |
| |
| #ifndef Py_INTERNAL_SIGNAL_H |
| #define Py_INTERNAL_SIGNAL_H |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| #ifndef Py_BUILD_CORE |
| # error "this header requires Py_BUILD_CORE define" |
| #endif |
| |
| #include <signal.h> // NSIG |
| |
| #ifdef _SIG_MAXSIG |
| // gh-91145: On FreeBSD, <signal.h> defines NSIG as 32: it doesn't include |
| // realtime signals: [SIGRTMIN,SIGRTMAX]. Use _SIG_MAXSIG instead. For |
| // example on x86-64 FreeBSD 13, SIGRTMAX is 126 and _SIG_MAXSIG is 128. |
| # define Py_NSIG _SIG_MAXSIG |
| #elif defined(NSIG) |
| # define Py_NSIG NSIG |
| #elif defined(_NSIG) |
| # define Py_NSIG _NSIG // BSD/SysV |
| #elif defined(_SIGMAX) |
| # define Py_NSIG (_SIGMAX + 1) // QNX |
| #elif defined(SIGMAX) |
| # define Py_NSIG (SIGMAX + 1) // djgpp |
| #else |
| # define Py_NSIG 64 // Use a reasonable default value |
| #endif |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| #endif // !Py_INTERNAL_SIGNAL_H |