summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDonghee Na <donghee.na@python.org>2023-10-13 16:40:15 (GMT)
committerGitHub <noreply@github.com>2023-10-13 16:40:15 (GMT)
commitb2ab210aaefb3b0e39f28e7946b7a531d7b2ab17 (patch)
tree7a327ef601d20b3b463e423602e538d622815c94
parent8f07b6e4e3c5e5c549b8c2c7d14a89b2563e6b9e (diff)
downloadcpython-b2ab210aaefb3b0e39f28e7946b7a531d7b2ab17.zip
cpython-b2ab210aaefb3b0e39f28e7946b7a531d7b2ab17.tar.gz
cpython-b2ab210aaefb3b0e39f28e7946b7a531d7b2ab17.tar.bz2
gh-109693: Update pyruntimestate._finalizing to use pyatomic.h (gh-110837)
-rw-r--r--Include/internal/pycore_runtime.h7
1 files changed, 3 insertions, 4 deletions
diff --git a/Include/internal/pycore_runtime.h b/Include/internal/pycore_runtime.h
index 1dc243e..f2383b4 100644
--- a/Include/internal/pycore_runtime.h
+++ b/Include/internal/pycore_runtime.h
@@ -9,7 +9,6 @@ extern "C" {
#endif
#include "pycore_atexit.h" // struct _atexit_runtime_state
-#include "pycore_atomic.h" // _Py_atomic_address
#include "pycore_ceval_state.h" // struct _ceval_runtime_state
#include "pycore_faulthandler.h" // struct _faulthandler_runtime_state
#include "pycore_floatobject.h" // struct _Py_float_runtime_state
@@ -170,7 +169,7 @@ typedef struct pyruntimestate {
Use _PyRuntimeState_GetFinalizing() and _PyRuntimeState_SetFinalizing()
to access it, don't access it directly. */
- _Py_atomic_address _finalizing;
+ PyThreadState *_finalizing;
/* The ID of the OS thread in which we are finalizing. */
unsigned long _finalizing_id;
@@ -299,7 +298,7 @@ extern void _PyRuntime_Finalize(void);
static inline PyThreadState*
_PyRuntimeState_GetFinalizing(_PyRuntimeState *runtime) {
- return (PyThreadState*)_Py_atomic_load_relaxed(&runtime->_finalizing);
+ return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&runtime->_finalizing);
}
static inline unsigned long
@@ -309,7 +308,7 @@ _PyRuntimeState_GetFinalizingID(_PyRuntimeState *runtime) {
static inline void
_PyRuntimeState_SetFinalizing(_PyRuntimeState *runtime, PyThreadState *tstate) {
- _Py_atomic_store_relaxed(&runtime->_finalizing, (uintptr_t)tstate);
+ _Py_atomic_store_ptr_relaxed(&runtime->_finalizing, tstate);
if (tstate == NULL) {
_Py_atomic_store_ulong_relaxed(&runtime->_finalizing_id, 0);
}