diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2023-10-02 20:12:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-10-02 20:12:12 (GMT) |
commit | 1dd9dee45d2591b4e701039d1673282380696849 (patch) | |
tree | 14199e2d03ef74ca575d64552676d4797d792d9c /Include/internal/pycore_pystate.h | |
parent | a040a32ea2f13f16172394d3e3e3f80f47f25a68 (diff) | |
download | cpython-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.h | 5 |
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) |