]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-109693: Update pycore_interp.h to use pyatomic.h (#110604)
authorDonghee Na <donghee.na@python.org>
Tue, 10 Oct 2023 14:17:08 +0000 (23:17 +0900)
committerGitHub <noreply@github.com>
Tue, 10 Oct 2023 14:17:08 +0000 (23:17 +0900)
Include/internal/pycore_interp.h

index 0beddbb3d1ad4a835c86cffe7ca6351877e0b1d6..80f16af54457fb944f115bfc9e9a94a1f9b6c6a3 100644 (file)
@@ -12,7 +12,6 @@ extern "C" {
 
 #include "pycore_ast_state.h"     // struct ast_state
 #include "pycore_atexit.h"        // struct atexit_state
-#include "pycore_atomic.h"        // _Py_atomic_address
 #include "pycore_ceval_state.h"   // struct _ceval_state
 #include "pycore_code.h"          // struct callable_cache
 #include "pycore_context.h"       // struct _Py_context_state
@@ -119,7 +118,7 @@ struct _is {
        Use _PyInterpreterState_GetFinalizing()
        and _PyInterpreterState_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;
 
@@ -244,7 +243,7 @@ extern void _PyInterpreterState_Clear(PyThreadState *tstate);
 
 static inline PyThreadState*
 _PyInterpreterState_GetFinalizing(PyInterpreterState *interp) {
-    return (PyThreadState*)_Py_atomic_load_relaxed(&interp->_finalizing);
+    return (PyThreadState*)_Py_atomic_load_ptr_relaxed(&interp->_finalizing);
 }
 
 static inline unsigned long
@@ -254,7 +253,7 @@ _PyInterpreterState_GetFinalizingID(PyInterpreterState *interp) {
 
 static inline void
 _PyInterpreterState_SetFinalizing(PyInterpreterState *interp, PyThreadState *tstate) {
-    _Py_atomic_store_relaxed(&interp->_finalizing, (uintptr_t)tstate);
+    _Py_atomic_store_ptr_relaxed(&interp->_finalizing, tstate);
     if (tstate == NULL) {
         _Py_atomic_store_ulong_relaxed(&interp->_finalizing_id, 0);
     }