summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/internal/pycore_pystate.h2
-rw-r--r--Python/crossinterp.c3
-rw-r--r--Python/pystate.c20
3 files changed, 10 insertions, 15 deletions
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index edcd75a..f4fbf37 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -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 *);
diff --git a/Python/crossinterp.c b/Python/crossinterp.c
index fe7d75f..7aaa045 100644
--- a/Python/crossinterp.c
+++ b/Python/crossinterp.c
@@ -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,
diff --git a/Python/pystate.c b/Python/pystate.c
index 24ee73c..a209a26 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -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();
@@ -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)
{