Skip to content

Make _threadmodule.c thread-safe in --disable-gil builds #114271

Closed
@mpage

Description

@mpage

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

Metadata

Metadata

Assignees

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions