[3.13] gh-126986: Stop Using _PyInterpreterState_FailIfNotRunning() (gh-127112)

This is a pseudo-backport of d6b3e78 (gh-126988).  In that change for 3.14+, we dropped _PyInterpreterState_FailIfNotRunning() and added _PyErr_SetInterpreterAlreadyRunning().  Here, we replace usage of _PyInterpreterState_FailIfNotRunning() with the inlined equivalent of _PyErr_SetInterpreterAlreadyRunning(), without adding that function.  That way we avoid changing the 3.13 ABI.
This commit is contained in:
Eric Snow 2024-11-21 10:33:15 -07:00 committed by GitHub
parent c74331413e
commit 8cdd636f87
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 6 additions and 3 deletions

View File

@ -985,8 +985,8 @@ _PyXI_ApplyErrorCode(_PyXI_errcode code, PyInterpreterState *interp)
break;
case _PyXI_ERR_ALREADY_RUNNING:
assert(interp != NULL);
assert(_PyInterpreterState_IsRunningMain(interp));
_PyInterpreterState_FailIfRunningMain(interp);
// In 3.14+ we use _PyErr_SetInterpreterAlreadyRunning().
PyErr_SetString(PyExc_InterpreterError, "interpreter already running");
break;
case _PyXI_ERR_MAIN_NS_FAILURE:
PyErr_SetString(PyExc_InterpreterError,

View File

@ -1053,7 +1053,9 @@ get_main_thread(PyInterpreterState *interp)
int
_PyInterpreterState_SetRunningMain(PyInterpreterState *interp)
{
if (_PyInterpreterState_FailIfRunningMain(interp) < 0) {
if (get_main_thread(interp) != NULL) {
// In 3.14+ we use _PyErr_SetInterpreterAlreadyRunning().
PyErr_SetString(PyExc_InterpreterError, "interpreter already running");
return -1;
}
PyThreadState *tstate = current_fast_get();
@ -1099,6 +1101,7 @@ _PyThreadState_IsRunningMain(PyThreadState *tstate)
return get_main_thread(interp) == tstate;
}
// This has been removed in 3.14.
int
_PyInterpreterState_FailIfRunningMain(PyInterpreterState *interp)
{