mirror of
https://github.com/python/cpython.git
synced 2025-08-04 08:59:19 +00:00
gh-130920: Fix data race in STORE_SUBSCR_LIST_INT (#130923)
The write of the item to the list needs to use an atomic operation in the free threading build. Co-authored-by: Tomasz Pytel <tompytel@gmail.com>
This commit is contained in:
parent
6c6600f683
commit
a025f27d94
4 changed files with 21 additions and 4 deletions
3
Python/executor_cases.c.h
generated
3
Python/executor_cases.c.h
generated
|
@ -1522,7 +1522,8 @@
|
|||
}
|
||||
STAT_INC(STORE_SUBSCR, hit);
|
||||
PyObject *old_value = PyList_GET_ITEM(list, index);
|
||||
PyList_SET_ITEM(list, index, PyStackRef_AsPyObjectSteal(value));
|
||||
FT_ATOMIC_STORE_PTR_RELEASE(_PyList_ITEMS(list)[index],
|
||||
PyStackRef_AsPyObjectSteal(value));
|
||||
assert(old_value != NULL);
|
||||
UNLOCK_OBJECT(list); // unlock before decrefs!
|
||||
PyStackRef_CLOSE_SPECIALIZED(sub_st, _PyLong_ExactDealloc);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue