summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVictor Stinner <vstinner@python.org>2023-05-04 16:21:01 +0200
committerGitHub <noreply@github.com>2023-05-04 16:21:01 +0200
commit45398ad51220b63b8df08fb5551c6b736205daed (patch)
tree42d5b05c0706b871067d7390768493878d07eda9
parenteba64d2afb4c429e80d863dc0dd7808bdbef30d3 (diff)
downloadcpython-git-45398ad51220b63b8df08fb5551c6b736205daed.tar.gz
gh-103323: Remove PyRuntimeState_GetThreadState() (#104171)
This function no longer makes sense, since its runtime parameter is no longer used. Use directly _PyThreadState_GET() and _PyInterpreterState_GET() instead.
-rw-r--r--Include/internal/pycore_pystate.h10
-rw-r--r--Python/ceval_gil.c5
-rw-r--r--Python/pylifecycle.c7
-rw-r--r--Python/pystate.c2
-rw-r--r--Python/sysmodule.c2
5 files changed, 9 insertions, 17 deletions
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index 180ea676bc..daa40cf4bc 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -68,7 +68,7 @@ _Py_ThreadCanHandlePendingCalls(void)
}
-/* Variable and macro for in-line access to current thread
+/* Variable and static inline functions for in-line access to current thread
and interpreter state */
#if defined(HAVE_THREAD_LOCAL) && !defined(Py_BUILD_CORE_MODULE)
@@ -93,12 +93,6 @@ _PyThreadState_GET(void)
#endif
}
-static inline PyThreadState*
-_PyRuntimeState_GetThreadState(_PyRuntimeState *Py_UNUSED(runtime))
-{
- return _PyThreadState_GET();
-}
-
static inline void
_Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate)
@@ -118,7 +112,7 @@ _Py_EnsureFuncTstateNotNULL(const char *func, PyThreadState *tstate)
/* Get the current interpreter state.
- The macro is unsafe: it does not check for error and it can return NULL.
+ The function is unsafe: it does not check for error and it can return NULL.
The caller must hold the GIL.
diff --git a/Python/ceval_gil.c b/Python/ceval_gil.c
index 29796be4b8..4d501c8966 100644
--- a/Python/ceval_gil.c
+++ b/Python/ceval_gil.c
@@ -546,8 +546,7 @@ _PyEval_Fini(void)
void
PyEval_AcquireLock(void)
{
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyThreadState *tstate = _PyThreadState_GET();
_Py_EnsureTstateNotNULL(tstate);
take_gil(tstate);
@@ -557,7 +556,7 @@ void
PyEval_ReleaseLock(void)
{
_PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyThreadState *tstate = _PyThreadState_GET();
/* This function must succeed when the current thread state is NULL.
We therefore avoid PyThreadState_Get() which dumps a fatal error
in debug mode. */
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index b9add89b9c..97957d3f17 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1303,8 +1303,7 @@ _Py_InitializeMain(void)
if (_PyStatus_EXCEPTION(status)) {
return status;
}
- _PyRuntimeState *runtime = &_PyRuntime;
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyThreadState *tstate = _PyThreadState_GET();
return pyinit_main(tstate);
}
@@ -1755,7 +1754,7 @@ Py_FinalizeEx(void)
}
/* Get current thread state and interpreter pointer */
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyThreadState *tstate = _PyThreadState_GET();
// XXX assert(_Py_IsMainInterpreter(tstate->interp));
// XXX assert(_Py_IsMainThread());
@@ -2800,7 +2799,7 @@ fatal_error(int fd, int header, const char *prefix, const char *msg,
tss_tstate != tstate if the current Python thread does not hold the GIL.
*/
- PyThreadState *tstate = _PyRuntimeState_GetThreadState(runtime);
+ PyThreadState *tstate = _PyThreadState_GET();
PyInterpreterState *interp = NULL;
PyThreadState *tss_tstate = PyGILState_GetThisThreadState();
if (tstate != NULL) {
diff --git a/Python/pystate.c b/Python/pystate.c
index f103a059f0..f09d37657f 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -1809,7 +1809,7 @@ int
PyThreadState_SetAsyncExc(unsigned long id, PyObject *exc)
{
_PyRuntimeState *runtime = &_PyRuntime;
- PyInterpreterState *interp = _PyRuntimeState_GetThreadState(runtime)->interp;
+ PyInterpreterState *interp = _PyInterpreterState_GET();
/* Although the GIL is held, a few C API functions can be called
* without the GIL held, and in particular some that create and
diff --git a/Python/sysmodule.c b/Python/sysmodule.c
index 781588b0df..894a3e8a98 100644
--- a/Python/sysmodule.c
+++ b/Python/sysmodule.c
@@ -365,7 +365,7 @@ PySys_AddAuditHook(Py_AuditHookFunction hook, void *userData)
_PyRuntimeState *runtime = &_PyRuntime;
PyThreadState *tstate;
if (runtime->initialized) {
- tstate = _PyRuntimeState_GetThreadState(runtime);
+ tstate = _PyThreadState_GET();
}
else {
tstate = NULL;