mirror of
https://github.com/python/cpython.git
synced 2025-08-31 14:07:50 +00:00
gh-127266: avoid data races when updating type slots (gh-131174)
In the free-threaded build, avoid data races caused by updating type slots or type flags after the type was initially created. For those (typically rare) cases, use the stop-the-world mechanism. Remove the use of atomics when reading or writing type flags. The use of atomics is not sufficient to avoid races (since flags are sometimes read without a lock and without atomics) and are no longer required.
This commit is contained in:
parent
22f0730d40
commit
e414a2d81c
10 changed files with 233 additions and 112 deletions
|
@ -19,9 +19,6 @@ immortal. The latter should be the only instances that require
|
|||
cleanup during runtime finalization.
|
||||
*/
|
||||
|
||||
#define _Py_STATICALLY_ALLOCATED_FLAG 4
|
||||
#define _Py_IMMORTAL_FLAGS 1
|
||||
|
||||
#if SIZEOF_VOID_P > 4
|
||||
/*
|
||||
In 64+ bit systems, any object whose 32 bit reference count is >= 2**31
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue