Skip to content

Commit e9050fc

Browse files
committed
Use atomic to load keys version in _GUARD_KEYS_VERSION
1 parent 4f9eeb3 commit e9050fc

File tree

3 files changed

+8
-4
lines changed

3 files changed

+8
-4
lines changed

Python/bytecodes.c

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3223,7 +3223,8 @@ dummy_func(
32233223
op(_GUARD_KEYS_VERSION, (keys_version/2, owner -- owner)) {
32243224
PyTypeObject *owner_cls = Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
32253225
PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
3226-
DEOPT_IF(owner_heap_type->ht_cached_keys->dk_version != keys_version);
3226+
PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
3227+
DEOPT_IF(FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != keys_version);
32273228
}
32283229

32293230
split op(_LOAD_ATTR_METHOD_WITH_VALUES, (descr/4, owner -- attr, self if (1))) {

Python/executor_cases.c.h

Lines changed: 2 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Python/generated_cases.c.h

Lines changed: 4 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)