gh-64783: Fix signal.NSIG value on FreeBSD (#91929)

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.
This commit is contained in:
Victor Stinner 2022-04-26 00:13:31 +02:00 committed by GitHub
parent 61381d7da1
commit 20cc695286
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
11 changed files with 81 additions and 51 deletions

View file

@ -8,24 +8,8 @@ extern "C" {
# error "this header requires Py_BUILD_CORE define"
#endif
#ifdef HAVE_SIGNAL_H
#include <signal.h>
#endif
#include "pycore_runtime.h" // _PyRuntimeState
#ifndef NSIG
# if defined(_NSIG)
# define NSIG _NSIG /* For BSD/SysV */
# elif defined(_SIGMAX)
# define NSIG (_SIGMAX + 1) /* For QNX */
# elif defined(SIGMAX)
# define NSIG (SIGMAX + 1) /* For djgpp */
# else
# define NSIG 64 /* Use a reasonable default value */
# endif
#endif
/* Forward declarations */
struct _PyArgv;
struct pyruntimestate;