diff options
author | Sam Gross <colesbury@gmail.com> | 2024-05-29 19:26:04 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-29 19:26:04 (GMT) |
commit | c22323cd1c200ca1b22c47af95f67c4b2d661fe7 (patch) | |
tree | fe4c2852469f1ef8c57c52e1ff0c75b9793e12a1 /Python/instruction_sequence.c | |
parent | df93f5d4bf9d70036d485666d4dd4f009d37f8b9 (diff) | |
download | cpython-c22323cd1c200ca1b22c47af95f67c4b2d661fe7.zip cpython-c22323cd1c200ca1b22c47af95f67c4b2d661fe7.tar.gz cpython-c22323cd1c200ca1b22c47af95f67c4b2d661fe7.tar.bz2 |
gh-119525: Fix deadlock with `_PyType_Lookup` and the GIL (#119527)
The deadlock only affected the free-threaded build and only occurred
when the GIL was enabled at runtime. The `Py_DECREF(old_name)` call
might temporarily release the GIL while holding the type seqlock.
Another thread may spin trying to acquire the seqlock while holding the
GIL.
The deadlock occurred roughly 1 in ~1,000 runs of `pool_in_threads.py`
from `test_multiprocessing_pool_circular_import`.
Diffstat (limited to 'Python/instruction_sequence.c')
0 files changed, 0 insertions, 0 deletions