Make `_threadmodule.c` thread-safe in `--disable-gil` builds

Skip to content

Navigation Menu

Sign in

Appearance settings

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Appearance settings

Closed

@mpage

Description

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