Skip to content

Commit 8529d64

Browse files
authored
[3.13] gh-129643: Fix PyList_Insert in free-threading builds (GH-129680) (#129725)
(cherry picked from commit 63f0406)
1 parent fc78ed9 commit 8529d64

File tree

2 files changed

+3
-2
lines changed

2 files changed

+3
-2
lines changed
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
Fix thread safety of :c:func:`PyList_Insert` in free-threading builds.

Objects/listobject.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -498,8 +498,8 @@ ins1(PyListObject *self, Py_ssize_t where, PyObject *v)
498498
where = n;
499499
items = self->ob_item;
500500
for (i = n; --i >= where; )
501-
items[i+1] = items[i];
502-
items[where] = Py_NewRef(v);
501+
FT_ATOMIC_STORE_PTR_RELAXED(items[i+1], items[i]);
502+
FT_ATOMIC_STORE_PTR_RELEASE(items[where], Py_NewRef(v));
503503
return 0;
504504
}
505505

0 commit comments

Comments
 (0)