Closed
Description
Feature or enhancement
random.Random
has mutable internal state. We should use the critical section API to make it thread-safe in --disable-gil
builds.
For context, here is the change from the nogil-3.12
fork. colesbury/nogil-3.12@9bf62ffc4b. Note that we want to do things a bit differently in CPython 3.13:
- No need for an extra
_PyMutex mutex
inRandomObject
- Use the critical section API. Locking can be added around operations that use Argument Clinic by adding the
@critical_section
directive as the first line. - Compared to
nogil-3.12
, we want to push the locking "up" to the around the methods. (See the above note 2).
Activity
_random.Random
methods thread-safe in--disable-gil
builds #112128chgnrdv commentedon Nov 15, 2023
The PR is done.
gh-112071: Make `_random.Random` methods thread-safe in `--disable-gi…
pythongh-112071: Make `_random.Random` methods thread-safe in `--disa…
pythongh-112071: Make `_random.Random` methods thread-safe in `--disa…