@@ -103,7 +103,7 @@ cdef class Buffer:
103103 self._memory_resource = None
104104 self._ipc_data = None
105105 self._owner = None
106- self._mem_attrs_inited = False
106+ self._mem_attrs_inited.store( False )
107107
108108 def __init__(self , *args , **kwargs ) -> None:
109109 raise RuntimeError("Buffer objects cannot be instantiated directly. "
@@ -133,7 +133,7 @@ cdef class Buffer:
133133 self._memory_resource = mr
134134 self._ipc_data = IPCDataForBuffer(ipc_descriptor, True ) if ipc_descriptor is not None else None
135135 self._owner = owner
136- self._mem_attrs_inited = False
136+ self._mem_attrs_inited.store( False )
137137 return self
138138
139139 @staticmethod
@@ -462,9 +462,9 @@ cdef class Buffer:
462462# ------------------------------
463463cdef inline void _init_mem_attrs(Buffer self ):
464464 """ Initialize memory attributes by querying the pointer."""
465- if not self ._mem_attrs_inited:
465+ if not self ._mem_attrs_inited.load(memory_order_acquire) :
466466 _query_memory_attrs(self ._mem_attrs, as_cu(self ._h_ptr))
467- self ._mem_attrs_inited = True
467+ self ._mem_attrs_inited.store( True , memory_order_release)
468468
469469
470470cdef inline int _query_memory_attrs(
@@ -612,7 +612,7 @@ cdef Buffer Buffer_from_deviceptr_handle(
612612 buf._memory_resource = mr
613613 buf._ipc_data = IPCDataForBuffer(ipc_descriptor, True ) if ipc_descriptor is not None else None
614614 buf._owner = None
615- buf._mem_attrs_inited = False
615+ buf._mem_attrs_inited.store( False )
616616 return buf
617617
618618
0 commit comments