diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h index 857fc0b2524..2a7c235cfc2 100644 --- a/Include/internal/pycore_ceval.h +++ b/Include/internal/pycore_ceval.h @@ -15,7 +15,7 @@ struct _frame; #include "pycore_pystate.h" /* PyInterpreterState.eval_frame */ -PyAPI_FUNC(void) _Py_FinishPendingCalls(struct pyruntimestate *runtime); +PyAPI_FUNC(void) _Py_FinishPendingCalls(PyThreadState *tstate); PyAPI_FUNC(void) _PyEval_Initialize(struct _ceval_runtime_state *); PyAPI_FUNC(void) _PyEval_FiniThreads( struct _ceval_runtime_state *ceval); diff --git a/Python/ceval.c b/Python/ceval.c index f780c212c5f..e8931c88820 100644 --- a/Python/ceval.c +++ b/Python/ceval.c @@ -585,11 +585,11 @@ error: } void -_Py_FinishPendingCalls(_PyRuntimeState *runtime) +_Py_FinishPendingCalls(PyThreadState *tstate) { assert(PyGILState_Check()); - PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime); + _PyRuntimeState *runtime = tstate->interp->runtime; struct _pending_calls *pending = &runtime->ceval.pending; PyThread_acquire_lock(pending->lock, WAIT_LOCK); diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c index 1d9dff4ce80..d5d60d0a6d4 100644 --- a/Python/pylifecycle.c +++ b/Python/pylifecycle.c @@ -1340,7 +1340,7 @@ Py_FinalizeEx(void) wait_for_thread_shutdown(tstate); // Make any remaining pending calls. - _Py_FinishPendingCalls(runtime); + _Py_FinishPendingCalls(tstate); /* The interpreter is still entirely intact at this point, and the * exit funcs may be relying on that. In particular, if some thread