# 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_ <!-- gh-linked-prs --> ### Linked PRs * gh-114839 * gh-115093 * gh-115102 * gh-115190 * gh-116433 * gh-116776 <!-- /gh-linked-prs -->