mirror of
https://github.com/python/cpython.git
synced 2025-07-24 03:35:53 +00:00
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().
This commit is contained in:
parent
13d4e6a4a0
commit
438a12dd9d
11 changed files with 563 additions and 403 deletions
|
@ -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);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue