gh-127020: Make PyCode_GetCode thread-safe for free threading (#127043)

Some fields in PyCodeObject are lazily initialized. Use atomics and
critical sections to make their initializations and accesses thread-safe.
This commit is contained in:
Sam Gross 2024-11-21 16:00:50 +00:00 committed by GitHub
parent dc7a2b6522
commit 3926842117
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
3 changed files with 86 additions and 28 deletions

View file

@ -0,0 +1,4 @@
Fix a crash in the free threading build when :c:func:`PyCode_GetCode`,
:c:func:`PyCode_GetVarnames`, :c:func:`PyCode_GetCellvars`, or
:c:func:`PyCode_GetFreevars` were called from multiple threads at the same
time.