gh-112069: Make PySet_GET_SIZE to be atomic safe. (gh-118053)

gh-112069: Make PySet_GET_SIZE to be atomic operation
This commit is contained in:
Donghee Na 2024-04-19 06:40:28 +09:00 committed by GitHub
parent 8f25cc9920
commit 710c01be94
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 4 additions and 1 deletions

View file

@ -62,6 +62,10 @@ typedef struct {
(assert(PyAnySet_Check(so)), _Py_CAST(PySetObject*, so))
static inline Py_ssize_t PySet_GET_SIZE(PyObject *so) {
#ifdef Py_GIL_DISABLED
return _Py_atomic_load_ssize_relaxed(&(_PySet_CAST(so)->used));
#else
return _PySet_CAST(so)->used;
#endif
}
#define PySet_GET_SIZE(so) PySet_GET_SIZE(_PyObject_CAST(so))