mirror of
				https://github.com/python/cpython.git
				synced 2025-11-03 19:34:08 +00:00 
			
		
		
		
	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.
		
			
				
	
	
		
			35 lines
		
	
	
	
		
			937 B
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			35 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
 |