mirror of
https://github.com/python/cpython.git
synced 2025-07-23 11:15:24 +00:00
gh-90623: signal.raise_signal() calls PyErr_CheckSignals() (#91756)
signal.raise_signal() and os.kill() now call PyErr_CheckSignals() to check immediately for pending signals.
This commit is contained in:
parent
c77953b23e
commit
031f1e6040
3 changed files with 19 additions and 1 deletions
|
@ -7929,8 +7929,17 @@ os_kill_impl(PyObject *module, pid_t pid, Py_ssize_t signal)
|
|||
return NULL;
|
||||
}
|
||||
#ifndef MS_WINDOWS
|
||||
if (kill(pid, (int)signal) == -1)
|
||||
if (kill(pid, (int)signal) == -1) {
|
||||
return posix_error();
|
||||
}
|
||||
|
||||
// Check immediately if the signal was sent to the current process.
|
||||
// Don't micro-optimize pid == getpid(), since PyErr_SetString() check
|
||||
// is cheap.
|
||||
if (PyErr_CheckSignals()) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
Py_RETURN_NONE;
|
||||
#else /* !MS_WINDOWS */
|
||||
PyObject *result;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue