Skip to content

Commit cd097ab

Browse files
committed
gh-92810: Introduce FT wrappers for uint64_t atomics
1 parent dc1b6d5 commit cd097ab

File tree

2 files changed

+8
-10
lines changed

2 files changed

+8
-10
lines changed

Include/internal/pycore_pyatomic_ft_wrappers.h

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -45,6 +45,8 @@ extern "C" {
4545
_Py_atomic_load_uint16_relaxed(&value)
4646
#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) \
4747
_Py_atomic_load_uint32_relaxed(&value)
48+
#define FT_ATOMIC_LOAD_UINT64_RELAXED(value) \
49+
_Py_atomic_load_uint64_relaxed(&value)
4850
#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) \
4951
_Py_atomic_load_ulong_relaxed(&value)
5052
#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) \
@@ -61,6 +63,8 @@ extern "C" {
6163
_Py_atomic_store_uint16_relaxed(&value, new_value)
6264
#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) \
6365
_Py_atomic_store_uint32_relaxed(&value, new_value)
66+
#define FT_ATOMIC_STORE_UINT64_RELAXED(value, new_value) \
67+
_Py_atomic_store_uint64_relaxed(&value, new_value)
6468
#define FT_ATOMIC_STORE_CHAR_RELAXED(value, new_value) \
6569
_Py_atomic_store_char_relaxed(&value, new_value)
6670
#define FT_ATOMIC_LOAD_CHAR_RELAXED(value) \
@@ -126,6 +130,7 @@ extern "C" {
126130
#define FT_ATOMIC_LOAD_UINT8_RELAXED(value) value
127131
#define FT_ATOMIC_LOAD_UINT16_RELAXED(value) value
128132
#define FT_ATOMIC_LOAD_UINT32_RELAXED(value) value
133+
#define FT_ATOMIC_LOAD_UINT64_RELAXED(value) value
129134
#define FT_ATOMIC_LOAD_ULONG_RELAXED(value) value
130135
#define FT_ATOMIC_STORE_PTR_RELAXED(value, new_value) value = new_value
131136
#define FT_ATOMIC_STORE_PTR_RELEASE(value, new_value) value = new_value
@@ -134,6 +139,7 @@ extern "C" {
134139
#define FT_ATOMIC_STORE_UINT8_RELAXED(value, new_value) value = new_value
135140
#define FT_ATOMIC_STORE_UINT16_RELAXED(value, new_value) value = new_value
136141
#define FT_ATOMIC_STORE_UINT32_RELAXED(value, new_value) value = new_value
142+
#define FT_ATOMIC_STORE_UINT64_RELAXED(value, new_value) value = new_value
137143
#define FT_ATOMIC_LOAD_CHAR_RELAXED(value) value
138144
#define FT_ATOMIC_STORE_CHAR_RELAXED(value, new_value) value = new_value
139145
#define FT_ATOMIC_LOAD_UCHAR_RELAXED(value) value

Modules/_abc.c

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -73,21 +73,13 @@ typedef struct {
7373
static inline uint64_t
7474
get_cache_version(_abc_data *impl)
7575
{
76-
#ifdef Py_GIL_DISABLED
77-
return _Py_atomic_load_uint64_relaxed(&impl->_abc_negative_cache_version);
78-
#else
79-
return impl->_abc_negative_cache_version;
80-
#endif
76+
return FT_ATOMIC_LOAD_UINT64_RELAXED(impl->_abc_negative_cache_version);
8177
}
8278

8379
static inline void
8480
set_cache_version(_abc_data *impl, uint64_t version)
8581
{
86-
#ifdef Py_GIL_DISABLED
87-
_Py_atomic_store_uint64_relaxed(&impl->_abc_negative_cache_version, version);
88-
#else
89-
impl->_abc_negative_cache_version = version;
90-
#endif
82+
FT_ATOMIC_STORE_UINT64_RELAXED(impl->_abc_negative_cache_version, version);
9183
}
9284

9385
static inline uint8_t

0 commit comments

Comments
 (0)