Feature or enhancement
Proposal:
Make the functionality in _threadmodule.c thread-safe in free-threaded builds.
Commits from nogil-3.12: https://github.com/colesbury/nogil-3.12/commits/nogil-3.12/Modules/_threadmodule.c
Context from @colesbury:
- Ignore the CriticalLock commit; this was an idea that didn't work and was prone to deadlock.
- Ignore the weakrefs change.
- Unclear if we need to deal with _tstate_lock.
- For the other changes, use your judgement. You may be able to put together smaller changes
_Py_ThreadId() is currently only available in the free-threaded build, so the recursive lock implementation can probably (?) just stick with the existing PyThread_get_thread_ident().
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
Feature or enhancement
Proposal:
Make the functionality in
_threadmodule.cthread-safe in free-threaded builds.Commits from nogil-3.12: https://github.com/colesbury/nogil-3.12/commits/nogil-3.12/Modules/_threadmodule.c
Context from @colesbury:
_Py_ThreadId()is currently only available in the free-threaded build, so the recursive lock implementation can probably (?) just stick with the existingPyThread_get_thread_ident().Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
Thread.join()#114839PyInterpreterState.threads.countthread-safe in free-threaded builds #115093thread._rlockthread-safe in free-threaded builds #115102_thread.ThreadHandlethread-safe in free-threaded builds #115190_thread.lockthread-safe in free-threaded builds #116433