diff options
author | Victor Stinner <vstinner@redhat.com> | 2019-05-24 15:01:38 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-24 15:01:38 (GMT) |
commit | 438a12dd9d85f463c0bb7bf1505cd87b98b98170 (patch) | |
tree | 98c86409bb8fdfca0c58588f2b9475d25579057e /Modules | |
parent | 13d4e6a4a090031f8214e058ed3c8fd47767e05f (diff) | |
download | cpython-438a12dd9d85f463c0bb7bf1505cd87b98b98170.zip cpython-438a12dd9d85f463c0bb7bf1505cd87b98b98170.tar.gz cpython-438a12dd9d85f463c0bb7bf1505cd87b98b98170.tar.bz2 |
bpo-36710: Add tstate parameter in ceval.c (GH-13547)
* Fix a possible reference leak in _PyErr_Print() if exception
is NULL.
* PyErr_BadInternalCall(): replace PyErr_Format() with _PyErr_SetString().
* Add pycore_pyerrors.h header file.
* New functions:
* _PyErr_Clear()
* _PyErr_Fetch()
* _PyErr_Print()
* _PyErr_Restore()
* _PyErr_SetObject()
* _PyErr_SetString()
* Add 'tstate' parameter to _PyEval_AddPendingCall().
Diffstat (limited to 'Modules')
-rw-r--r-- | Modules/signalmodule.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/Modules/signalmodule.c b/Modules/signalmodule.c index ed3852d..7698984 100644 --- a/Modules/signalmodule.c +++ b/Modules/signalmodule.c @@ -258,6 +258,7 @@ trip_signal(int sig_num) /* Notify ceval.c */ _PyRuntimeState *runtime = &_PyRuntime; + PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); _PyEval_SignalReceived(&runtime->ceval); /* And then write to the wakeup fd *after* setting all the globals and @@ -298,7 +299,7 @@ trip_signal(int sig_num) { /* Py_AddPendingCall() isn't signal-safe, but we still use it for this exceptional case. */ - _PyEval_AddPendingCall(&runtime->ceval, + _PyEval_AddPendingCall(tstate, &runtime->ceval, report_wakeup_send_error, (void *)(intptr_t) last_error); } @@ -317,7 +318,7 @@ trip_signal(int sig_num) { /* Py_AddPendingCall() isn't signal-safe, but we still use it for this exceptional case. */ - _PyEval_AddPendingCall(&runtime->ceval, + _PyEval_AddPendingCall(tstate, &runtime->ceval, report_wakeup_write_error, (void *)(intptr_t)errno); } |