diff options
author | Victor Stinner <vstinner@python.org> | 2022-10-12 15:26:58 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-10-12 15:26:58 (GMT) |
commit | 342b1151ae7e6ae849c1ed7c8a2cbfdb4edcf51c (patch) | |
tree | ecbfbb2aa4d5223ecbaaebd223dc23e397b89e5b | |
parent | a8c8526fd8ce2f3f50837bbbb820741e54b58512 (diff) | |
download | cpython-342b1151ae7e6ae849c1ed7c8a2cbfdb4edcf51c.zip cpython-342b1151ae7e6ae849c1ed7c8a2cbfdb4edcf51c.tar.gz cpython-342b1151ae7e6ae849c1ed7c8a2cbfdb4edcf51c.tar.bz2 |
signalmodule.c uses _PyErr_WriteUnraisableMsg() (#98217)
Signal wakeup fd errors are now logged with
_PyErr_WriteUnraisableMsg(), rather than PySys_WriteStderr() and
PyErr_WriteUnraisable(), to pass the error message to
sys.unraisablehook. By default, it's still written into stderr (unless
sys.unraisablehook is overriden).
-rw-r--r-- | Modules/signalmodule.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index b85d6d1..bdd3f4b 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -272,9 +272,8 @@ report_wakeup_write_error(void *data) errno = (int) (intptr_t) data; PyErr_Fetch(&exc, &val, &tb); PyErr_SetFromErrno(PyExc_OSError); - PySys_WriteStderr("Exception ignored when trying to write to the " - "signal wakeup fd:\n"); - PyErr_WriteUnraisable(NULL); + _PyErr_WriteUnraisableMsg("when trying to write to the signal wakeup fd", + NULL); PyErr_Restore(exc, val, tb); errno = save_errno; return 0; @@ -284,15 +283,15 @@ report_wakeup_write_error(void *data) static int report_wakeup_send_error(void* data) { + int send_errno = (int) (intptr_t) data; + PyObject *exc, *val, *tb; PyErr_Fetch(&exc, &val, &tb); /* PyErr_SetExcFromWindowsErr() invokes FormatMessage() which recognizes the error codes used by both GetLastError() and WSAGetLastError */ - PyErr_SetExcFromWindowsErr(PyExc_OSError, (int) (intptr_t) data); - PySys_WriteStderr("Exception ignored when trying to send to the " - "signal wakeup fd:\n"); - PyErr_WriteUnraisable(NULL); + PyErr_SetExcFromWindowsErr(PyExc_OSError, send_errno); + _PyErr_WriteUnraisableMsg("when trying to send to the signal wakeup fd", NULL); PyErr_Restore(exc, val, tb); return 0; } |