summaryrefslogtreecommitdiffstats
path: root/Include/cpython/pyatomic_std.h
diff options
context:
space:
mode:
authorDino Viehland <dinoviehland@meta.com>2024-02-21 00:40:37 (GMT)
committerGitHub <noreply@github.com>2024-02-21 00:40:37 (GMT)
commit176df09adbb42bbb50febd02346c32782d39dc4d (patch)
tree6f8a91d55df5bb1b432bdaff529c9eaa7d51cf92 /Include/cpython/pyatomic_std.h
parent145bc2d638370cb6d3da361c6dc05c5bc29f0d11 (diff)
downloadcpython-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.h16
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,
}