From 8ef37e6c0b19dec90b3589d42b8e348fcb8786a7 Mon Sep 17 00:00:00 2001 From: daan Date: Tue, 9 Jul 2019 14:56:43 -0700 Subject: [PATCH] update atomic exchange memory model annotations for unix --- include/mimalloc-atomic.h | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/include/mimalloc-atomic.h b/include/mimalloc-atomic.h index b295aae2..7b7cb383 100644 --- a/include/mimalloc-atomic.h +++ b/include/mimalloc-atomic.h @@ -139,15 +139,15 @@ static inline uint32_t mi_atomic_subtract32(volatile uint32_t* p, uint32_t sub) } static inline bool mi_atomic_compare_exchange32(volatile uint32_t* p, uint32_t exchange, uint32_t compare) { MI_USING_STD - return atomic_compare_exchange_weak_explicit((volatile _Atomic(uint32_t)*)p, &compare, exchange, memory_order_relaxed, memory_order_seq_cst); + return atomic_compare_exchange_weak_explicit((volatile _Atomic(uint32_t)*)p, &compare, exchange, memory_order_release, memory_order_relaxed); } static inline bool mi_atomic_compare_exchange(volatile uintptr_t* p, uintptr_t exchange, uintptr_t compare) { MI_USING_STD - return atomic_compare_exchange_weak_explicit((volatile atomic_uintptr_t*)p, &compare, exchange, memory_order_relaxed, memory_order_seq_cst); + return atomic_compare_exchange_weak_explicit((volatile atomic_uintptr_t*)p, &compare, exchange, memory_order_release, memory_order_relaxed); } static inline uintptr_t mi_atomic_exchange(volatile uintptr_t* p, uintptr_t exchange) { MI_USING_STD - return atomic_exchange_explicit((volatile atomic_uintptr_t*)p, exchange, memory_order_relaxed); + return atomic_exchange_explicit((volatile atomic_uintptr_t*)p, exchange, memory_order_acquire); } #if defined(__cplusplus)