mirror of
https://github.com/python/cpython.git
synced 2025-08-26 19:55:24 +00:00
bpo-41686: Always create the SIGINT event on Windows (GH-23344) (GH-23347)
bpo-41686, bpo-41713: On Windows, the SIGINT event, _PyOS_SigintEvent(), is now created even if Python is configured to not install signal handlers (PyConfig.install_signal_handlers=0 or Py_InitializeEx(0)).
This commit is contained in:
parent
ac472b316c
commit
05a5d697f4
4 changed files with 54 additions and 30 deletions
|
@ -57,7 +57,6 @@ static PyStatus add_main_module(PyInterpreterState *interp);
|
|||
static PyStatus init_import_site(void);
|
||||
static PyStatus init_set_builtins_open(void);
|
||||
static PyStatus init_sys_streams(PyThreadState *tstate);
|
||||
static PyStatus init_signals(PyThreadState *tstate);
|
||||
static void call_py_exitfuncs(PyThreadState *tstate);
|
||||
static void wait_for_thread_shutdown(PyThreadState *tstate);
|
||||
static void call_ll_exitfuncs(_PyRuntimeState *runtime);
|
||||
|
@ -1013,11 +1012,8 @@ init_interp_main(PyThreadState *tstate)
|
|||
}
|
||||
|
||||
if (is_main_interp) {
|
||||
if (config->install_signal_handlers) {
|
||||
status = init_signals(tstate);
|
||||
if (_PyStatus_EXCEPTION(status)) {
|
||||
return status;
|
||||
}
|
||||
if (_PySignal_Init(config->install_signal_handlers) < 0) {
|
||||
return _PyStatus_ERR("can't initialize signals");
|
||||
}
|
||||
|
||||
if (_PyTraceMalloc_Init(config->tracemalloc) < 0) {
|
||||
|
@ -2442,25 +2438,6 @@ Py_Exit(int sts)
|
|||
exit(sts);
|
||||
}
|
||||
|
||||
static PyStatus
|
||||
init_signals(PyThreadState *tstate)
|
||||
{
|
||||
#ifdef SIGPIPE
|
||||
PyOS_setsig(SIGPIPE, SIG_IGN);
|
||||
#endif
|
||||
#ifdef SIGXFZ
|
||||
PyOS_setsig(SIGXFZ, SIG_IGN);
|
||||
#endif
|
||||
#ifdef SIGXFSZ
|
||||
PyOS_setsig(SIGXFSZ, SIG_IGN);
|
||||
#endif
|
||||
PyOS_InitInterrupts(); /* May imply init_signals() */
|
||||
if (_PyErr_Occurred(tstate)) {
|
||||
return _PyStatus_ERR("can't import signal");
|
||||
}
|
||||
return _PyStatus_OK();
|
||||
}
|
||||
|
||||
|
||||
/* Restore signals that the interpreter has called SIG_IGN on to SIG_DFL.
|
||||
*
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue