Skip to content

Commit

Permalink
pythongh-103323: Remove PyRuntimeState_GetThreadState()
Browse files Browse the repository at this point in the history
This function no longer makes sense, since its runtime parameter is
no longer used. Use directly _PyThreadState_GET() and
_PyInterpreterState_GET() instead.
  • Loading branch information
vstinner committed May 4, 2023
1 parent e2ef501 commit 1257ecf
Show file tree
Hide file tree
Showing 5 changed files with 7 additions and 15 deletions.
6 changes: 0 additions & 6 deletions Include/internal/pycore_pystate.h
Expand Up @@ -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)
Expand Down
5 changes: 2 additions & 3 deletions Python/ceval_gil.c
Expand Up @@ -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);
Expand All @@ -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. */
Expand Down
7 changes: 3 additions & 4 deletions Python/pylifecycle.c
Expand Up @@ -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);
}

Expand Down Expand Up @@ -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());

Expand Down Expand Up @@ -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) {
Expand Down
2 changes: 1 addition & 1 deletion Python/pystate.c
Expand Up @@ -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
Expand Down
2 changes: 1 addition & 1 deletion Python/sysmodule.c
Expand Up @@ -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;
Expand Down

0 comments on commit 1257ecf

Please sign in to comment.