diff options
author | Dino Viehland <dinoviehland@meta.com> | 2024-02-21 00:40:37 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-02-21 00:40:37 (GMT) |
commit | 176df09adbb42bbb50febd02346c32782d39dc4d (patch) | |
tree | 6f8a91d55df5bb1b432bdaff529c9eaa7d51cf92 /Include/cpython/pyatomic_std.h | |
parent | 145bc2d638370cb6d3da361c6dc05c5bc29f0d11 (diff) | |
download | cpython-176df09adbb42bbb50febd02346c32782d39dc4d.zip cpython-176df09adbb42bbb50febd02346c32782d39dc4d.tar.gz cpython-176df09adbb42bbb50febd02346c32782d39dc4d.tar.bz2 |
gh-112075: Make PyDictKeysObject thread-safe (#114741)
Adds locking for shared PyDictKeysObject's for dictionaries
Diffstat (limited to 'Include/cpython/pyatomic_std.h')
-rw-r--r-- | Include/cpython/pyatomic_std.h | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/Include/cpython/pyatomic_std.h b/Include/cpython/pyatomic_std.h index f5bd73a..f3970a4 100644 --- a/Include/cpython/pyatomic_std.h +++ b/Include/cpython/pyatomic_std.h @@ -879,6 +879,14 @@ _Py_atomic_store_int_release(int *obj, int value) memory_order_release); } +static inline void +_Py_atomic_store_ssize_release(Py_ssize_t *obj, Py_ssize_t value) +{ + _Py_USING_STD; + atomic_store_explicit((_Atomic(Py_ssize_t)*)obj, value, + memory_order_release); +} + static inline int _Py_atomic_load_int_acquire(const int *obj) { @@ -908,7 +916,13 @@ _Py_atomic_load_uint32_acquire(const uint32_t *obj) { _Py_USING_STD; return atomic_load_explicit((const _Atomic(uint32_t)*)obj, - memory_order_acquire); +} + +static inline Py_ssize_t +_Py_atomic_load_ssize_acquire(const Py_ssize_t *obj) +{ + _Py_USING_STD; + return atomic_load_explicit((const _Atomic(Py_ssize_t)*)obj, } |