From b74caddcc1307008c4f383b73fc45d0dc05aea3a Mon Sep 17 00:00:00 2001 From: daan Date: Thu, 23 Jul 2020 15:00:49 -0700 Subject: [PATCH] fix memory order to acq_rel for atomic and/or, issue #130, thanks @mpoeter! --- ide/vs2019/mimalloc-test-stress.vcxproj | 4 ++-- include/mimalloc-atomic.h | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/ide/vs2019/mimalloc-test-stress.vcxproj b/ide/vs2019/mimalloc-test-stress.vcxproj index ef7ab357..afbb6666 100644 --- a/ide/vs2019/mimalloc-test-stress.vcxproj +++ b/ide/vs2019/mimalloc-test-stress.vcxproj @@ -149,8 +149,8 @@ - - {abb5eae7-b3e6-432e-b636-333449892ea6} + + {abb5eae7-b3e6-432e-b636-333449892ea7} diff --git a/include/mimalloc-atomic.h b/include/mimalloc-atomic.h index b3732e89..86deaf76 100644 --- a/include/mimalloc-atomic.h +++ b/include/mimalloc-atomic.h @@ -215,11 +215,11 @@ static inline uintptr_t mi_atomic_add(volatile _Atomic(uintptr_t)* p, uintptr_t } static inline uintptr_t mi_atomic_and(volatile _Atomic(uintptr_t)* p, uintptr_t x) { MI_USING_STD - return atomic_fetch_and_explicit(p, x, memory_order_relaxed); + return atomic_fetch_and_explicit(p, x, memory_order_acq_rel); } static inline uintptr_t mi_atomic_or(volatile _Atomic(uintptr_t)* p, uintptr_t x) { MI_USING_STD - return atomic_fetch_or_explicit(p, x, memory_order_relaxed); + return atomic_fetch_or_explicit(p, x, memory_order_acq_rel); } static inline bool mi_atomic_cas_weak(volatile _Atomic(uintptr_t)* p, uintptr_t desired, uintptr_t expected) { MI_USING_STD