summaryrefslogtreecommitdiffstats
path: root/Modules/clinic
diff options
context:
space:
mode:
authorSam Gross <colesbury@gmail.com>2024-01-23 18:08:23 (GMT)
committerGitHub <noreply@github.com>2024-01-23 18:08:23 (GMT)
commit441affc9e7f419ef0b68f734505fa2f79fe653c7 (patch)
tree1c7771190fffc7927ab70f485500521a96de7938 /Modules/clinic
parent5f1997896d9c3ecf92e9863177c452b468a6a2c8 (diff)
downloadcpython-441affc9e7f419ef0b68f734505fa2f79fe653c7.zip
cpython-441affc9e7f419ef0b68f734505fa2f79fe653c7.tar.gz
cpython-441affc9e7f419ef0b68f734505fa2f79fe653c7.tar.bz2
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.
Diffstat (limited to 'Modules/clinic')
0 files changed, 0 insertions, 0 deletions