SIGN IN SIGN UP
python / cpython UNCLAIMED

The Python programming language

0 0 132 Python

gh-111964: Implement stop-the-world pauses (gh-112471)

The `--disable-gil` builds occasionally need to pause all but one thread.  Some
examples include:

* Cyclic garbage collection, where this is often called a "stop the world event"
* Before calling `fork()`, to ensure a consistent state for internal data structures
* During interpreter shutdown, to ensure that daemon threads aren't accessing Python objects

This adds the following functions to implement global and per-interpreter pauses:

* `_PyEval_StopTheWorldAll()` and `_PyEval_StartTheWorldAll()` (for the global runtime)
* `_PyEval_StopTheWorld()` and `_PyEval_StartTheWorld()` (per-interpreter)

(The function names may change.)

These functions are no-ops outside of the `--disable-gil` build.
S
Sam Gross committed
441affc9e7f419ef0b68f734505fa2f79fe653c7
Parent: 5f19978
Committed by GitHub <noreply@github.com> on 1/23/2024, 6:08:23 PM