mirror of
https://github.com/python/cpython.git
synced 2024-11-24 17:47:13 +01:00
20cc695286
Fix signal.NSIG value on FreeBSD to accept signal numbers greater than 32, like signal.SIGRTMIN and signal.SIGRTMAX. * Add Py_NSIG constant. * Add pycore_signal.h internal header file. * _Py_Sigset_Converter() now includes the range of valid signals in the error message.
36 lines
937 B
C
36 lines
937 B
C
// 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
|