summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Include/internal/pycore_pystate.h14
-rw-r--r--Modules/posixmodule.c4
-rw-r--r--Python/pylifecycle.c2
-rw-r--r--Python/pystate.c2
4 files changed, 13 insertions, 9 deletions
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index f139fa9..06f58fb 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -21,19 +21,23 @@ _Py_IsMainThread(void)
}
+static inline PyInterpreterState *
+_PyInterpreterState_Main(void)
+{
+ return _PyRuntime.interpreters.main;
+}
+
static inline int
_Py_IsMainInterpreter(PyInterpreterState *interp)
{
- /* Use directly _PyRuntime rather than tstate->interp->runtime, since
- this function is used in performance critical code path (ceval) */
- return (interp == _PyRuntime.interpreters.main);
+ return (interp == _PyInterpreterState_Main());
}
static inline const PyConfig *
_Py_GetMainConfig(void)
{
- PyInterpreterState *interp = _PyRuntime.interpreters.main;
+ PyInterpreterState *interp = _PyInterpreterState_Main();
if (interp == NULL) {
return NULL;
}
@@ -45,7 +49,7 @@ _Py_GetMainConfig(void)
static inline int
_Py_ThreadCanHandleSignals(PyInterpreterState *interp)
{
- return (_Py_IsMainThread() && interp == _PyRuntime.interpreters.main);
+ return (_Py_IsMainThread() && _Py_IsMainInterpreter(interp));
}
diff --git a/Modules/posixmodule.c b/Modules/posixmodule.c
index b1c2914..2d95efe 100644
--- a/Modules/posixmodule.c
+++ b/Modules/posixmodule.c
@@ -6696,7 +6696,7 @@ os_fork1_impl(PyObject *module)
{
pid_t pid;
- if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
+ if (!_Py_IsMainInterpreter(_PyInterpreterState_GET())) {
PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
return NULL;
}
@@ -7348,7 +7348,7 @@ os_forkpty_impl(PyObject *module)
int master_fd = -1;
pid_t pid;
- if (_PyInterpreterState_GET() != PyInterpreterState_Main()) {
+ if (!_Py_IsMainInterpreter(_PyInterpreterState_GET())) {
PyErr_SetString(PyExc_RuntimeError, "fork not supported for subinterpreters");
return NULL;
}
diff --git a/Python/pylifecycle.c b/Python/pylifecycle.c
index f648dda..2b386a1 100644
--- a/Python/pylifecycle.c
+++ b/Python/pylifecycle.c
@@ -1953,7 +1953,7 @@ new_interpreter(PyThreadState **tstate_p, int isolated_subinterpreter)
#endif
{
/* No current thread state, copy from the main interpreter */
- PyInterpreterState *main_interp = PyInterpreterState_Main();
+ PyInterpreterState *main_interp = _PyInterpreterState_Main();
config = _PyInterpreterState_GetConfig(main_interp);
}
diff --git a/Python/pystate.c b/Python/pystate.c
index f94019d..f21673e 100644
--- a/Python/pystate.c
+++ b/Python/pystate.c
@@ -1204,7 +1204,7 @@ PyInterpreterState_Head(void)
PyInterpreterState *
PyInterpreterState_Main(void)
{
- return _PyRuntime.interpreters.main;
+ return _PyInterpreterState_Main();
}
PyInterpreterState *