summaryrefslogtreecommitdiffstats
path: root/Include/internal/pycore_pystate.h
diff options
context:
space:
mode:
authorEric Snow <ericsnowcurrently@gmail.com>2023-10-02 20:12:12 (GMT)
committerGitHub <noreply@github.com>2023-10-02 20:12:12 (GMT)
commit1dd9dee45d2591b4e701039d1673282380696849 (patch)
tree14199e2d03ef74ca575d64552676d4797d792d9c /Include/internal/pycore_pystate.h
parenta040a32ea2f13f16172394d3e3e3f80f47f25a68 (diff)
downloadcpython-1dd9dee45d2591b4e701039d1673282380696849.zip
cpython-1dd9dee45d2591b4e701039d1673282380696849.tar.gz
cpython-1dd9dee45d2591b4e701039d1673282380696849.tar.bz2
gh-105716: Support Background Threads in Subinterpreters Consistently (gh-109921)
The existence of background threads running on a subinterpreter was preventing interpreters from getting properly destroyed, as well as impacting the ability to run the interpreter again. It also affected how we wait for non-daemon threads to finish. We add PyInterpreterState.threads.main, with some internal C-API functions.
Diffstat (limited to 'Include/internal/pycore_pystate.h')
-rw-r--r--Include/internal/pycore_pystate.h5
1 files changed, 5 insertions, 0 deletions
diff --git a/Include/internal/pycore_pystate.h b/Include/internal/pycore_pystate.h
index 2e568f8..6a36dba 100644
--- a/Include/internal/pycore_pystate.h
+++ b/Include/internal/pycore_pystate.h
@@ -44,6 +44,11 @@ _Py_IsMainInterpreterFinalizing(PyInterpreterState *interp)
interp == &_PyRuntime._main_interpreter);
}
+// Export for _xxsubinterpreters module.
+PyAPI_FUNC(int) _PyInterpreterState_SetRunningMain(PyInterpreterState *);
+PyAPI_FUNC(void) _PyInterpreterState_SetNotRunningMain(PyInterpreterState *);
+PyAPI_FUNC(int) _PyInterpreterState_IsRunningMain(PyInterpreterState *);
+
static inline const PyConfig *
_Py_GetMainConfig(void)