]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-126366: fix thread safety of dict key iterator (#132693)
authorKumar Aditya <kumaraditya@python.org>
Fri, 18 Apr 2025 16:13:49 +0000 (21:43 +0530)
committerGitHub <noreply@github.com>
Fri, 18 Apr 2025 16:13:49 +0000 (21:43 +0530)
Objects/dictobject.c

index 792a34cc569fe8e263bf6932c394454a1e23b7c5..ff6dbb8bed3007abd96c888b549000f0532cb100 100644 (file)
@@ -5495,7 +5495,7 @@ dictiter_iternext_threadsafe(PyDictObject *d, PyObject *self,
     ensure_shared_on_read(d);
 
     i = _Py_atomic_load_ssize_relaxed(&di->di_pos);
-    k = _Py_atomic_load_ptr_relaxed(&d->ma_keys);
+    k = _Py_atomic_load_ptr_acquire(&d->ma_keys);
     assert(i >= 0);
     if (_PyDict_HasSplitTable(d)) {
         PyDictValues *values = _Py_atomic_load_ptr_relaxed(&d->ma_values);