Skip to content

Commit

Permalink
pythongh-126986: Drop _PyInterpreterState_FailIfNotRunning() (pythong…
Browse files Browse the repository at this point in the history
…h-126988)

We replace it with _PyErr_SetInterpreterAlreadyRunning().
  • Loading branch information
ericsnowcurrently authored Nov 19, 2024
1 parent 0063f5f commit d6b3e78
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 15 deletions.
2 changes: 1 addition & 1 deletion Include/internal/pycore_pystate.h
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ PyAPI_FUNC(PyObject *) _PyInterpreterState_GetIDObject(PyInterpreterState *);
PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *);
PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *);
PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *);
PyAPI_FUNC(int) _PyInterpreterState_FailIfRunningMain(PyInterpreterState *);
PyAPI_FUNC(void) _PyErr_SetInterpreterAlreadyRunning(void);

extern int _PyThreadState_IsRunningMain(PyThreadState *);
extern void _PyInterpreterState_ReinitRunningMain(PyThreadState *);
Expand Down
3 changes: 1 addition & 2 deletions Python/crossinterp.c
Original file line number Diff line number Diff line change
Expand Up @@ -983,8 +983,7 @@ _PyXI_ApplyErrorCode(_PyXI_errcode code, PyInterpreterState *interp)
break;
case _PyXI_ERR_ALREADY_RUNNING:
assert(interp != NULL);
assert(_PyInterpreterState_IsRunningMain(interp));
_PyInterpreterState_FailIfRunningMain(interp);
_PyErr_SetInterpreterAlreadyRunning();
break;
case _PyXI_ERR_MAIN_NS_FAILURE:
PyErr_SetString(PyExc_InterpreterError,
Expand Down
20 changes: 8 additions & 12 deletions Python/pystate.c
Original file line number Diff line number Diff line change
Expand Up @@ -1047,10 +1047,17 @@ get_main_thread(PyInterpreterState *interp)
return _Py_atomic_load_ptr_relaxed(&interp->threads.main);
}

void
_PyErr_SetInterpreterAlreadyRunning(void)
{
PyErr_SetString(PyExc_InterpreterError, "interpreter already running");
}

int
_PyInterpreterState_SetRunningMain(PyInterpreterState *interp)
{
if (_PyInterpreterState_FailIfRunningMain(interp) < 0) {
if (get_main_thread(interp) != NULL) {
_PyErr_SetInterpreterAlreadyRunning();
return -1;
}
PyThreadState *tstate = current_fast_get();
Expand Down Expand Up @@ -1096,17 +1103,6 @@ _PyThreadState_IsRunningMain(PyThreadState *tstate)
return get_main_thread(interp) == tstate;
}

int
_PyInterpreterState_FailIfRunningMain(PyInterpreterState *interp)
{
if (get_main_thread(interp) != NULL) {
PyErr_SetString(PyExc_InterpreterError,
"interpreter already running");
return -1;
}
return 0;
}

void
_PyInterpreterState_ReinitRunningMain(PyThreadState *tstate)
{
Expand Down

0 comments on commit d6b3e78

Please sign in to comment.