diff options
author | Eric Snow <ericsnowcurrently@gmail.com> | 2024-06-25 20:35:12 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-06-25 20:35:12 (GMT) |
commit | a905721b9c5c15279e67c2f7785034b7356b2d46 (patch) | |
tree | 128afaafee27cac1e55fe22e552a2e41ac8921ef /Python/pystate.c | |
parent | 769aea332940f03c3e5b1ad9badd6635c1ac992a (diff) | |
download | cpython-a905721b9c5c15279e67c2f7785034b7356b2d46.zip cpython-a905721b9c5c15279e67c2f7785034b7356b2d46.tar.gz cpython-a905721b9c5c15279e67c2f7785034b7356b2d46.tar.bz2 |
gh-120838: Add _PyThreadState_WHENCE_FINI (gh-121010)
We also add _PyThreadState_NewBound() and drop _PyThreadState_SetWhence().
This change only affects internal API.
Diffstat (limited to 'Python/pystate.c')
-rw-r--r-- | Python/pystate.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/Python/pystate.c b/Python/pystate.c index 8d31a4d..602b13e 100644 --- a/Python/pystate.c +++ b/Python/pystate.c @@ -1293,9 +1293,8 @@ _PyInterpreterState_IDDecref(PyInterpreterState *interp) PyThread_release_lock(interp->id_mutex); if (refcount == 0 && interp->requires_idref) { - PyThreadState *tstate = _PyThreadState_New(interp, - _PyThreadState_WHENCE_INTERP); - _PyThreadState_Bind(tstate); + PyThreadState *tstate = + _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_FINI); // XXX Possible GILState issues? PyThreadState *save_tstate = _PyThreadState_Swap(runtime, tstate); @@ -1603,8 +1602,13 @@ new_threadstate(PyInterpreterState *interp, int whence) PyThreadState * PyThreadState_New(PyInterpreterState *interp) { - PyThreadState *tstate = new_threadstate(interp, - _PyThreadState_WHENCE_UNKNOWN); + return _PyThreadState_NewBound(interp, _PyThreadState_WHENCE_UNKNOWN); +} + +PyThreadState * +_PyThreadState_NewBound(PyInterpreterState *interp, int whence) +{ + PyThreadState *tstate = new_threadstate(interp, whence); if (tstate) { bind_tstate(tstate); // This makes sure there's a gilstate tstate bound |