summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2020-01-13 17:46:59 (GMT)
committerGitHub <noreply@github.com>2020-01-13 17:46:59 (GMT)
commit2b1df4592e1691017414337514c6e378eb639498 (patch)
tree3db8c91a4964ac46aad3686c80f0cdbc8493b30c
parent3430c55417f59078ac397c343894a3ee82a39624 (diff)
downloadcpython-2b1df4592e1691017414337514c6e378eb639498.zip
cpython-2b1df4592e1691017414337514c6e378eb639498.tar.gz
cpython-2b1df4592e1691017414337514c6e378eb639498.tar.bz2
bpo-38644: Pass tstate to _Py_FinishPendingCalls() (GH-17990)
_Py_FinishPendingCalls() now expects a tstate argument, instead of a runtime argument.
-rw-r--r--Include/internal/pycore_ceval.h2
-rw-r--r--Python/ceval.c4
-rw-r--r--Python/pylifecycle.c2
3 files changed, 4 insertions, 4 deletions
diff --git a/Include/internal/pycore_ceval.h b/Include/internal/pycore_ceval.h
index 857fc0b..2a7c235 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 f780c21..e8931c8 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 1d9dff4..d5d60d0 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