diff --git a/include/atomic/gcc_builtins.h b/include/atomic/gcc_builtins.h index 99e6f62..b8ca67a 100644 --- a/include/atomic/gcc_builtins.h +++ b/include/atomic/gcc_builtins.h @@ -65,14 +65,14 @@ #define my_atomic_fas64(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST) #define my_atomic_fasptr(P, D) __atomic_exchange_n((P), (D), __ATOMIC_SEQ_CST) -#define my_atomic_add32(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST) -#define my_atomic_add64(P, A) __atomic_fetch_add((P), (A), __ATOMIC_SEQ_CST) +#define my_atomic_add32(P, A) __atomic_fetch_add((P), (A), __ATOMIC_ACQ_REL) +#define my_atomic_add64(P, A) __atomic_fetch_add((P), (A), __ATOMIC_ACQ_REL) #define my_atomic_cas32(P, E, D) \ - __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) + __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED) #define my_atomic_cas64(P, E, D) \ - __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) + __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED) #define my_atomic_casptr(P, E, D) \ - __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_SEQ_CST, __ATOMIC_SEQ_CST) + __atomic_compare_exchange_n((P), (E), (D), 0, __ATOMIC_ACQUIRE, __ATOMIC_RELAXED) #endif /* ATOMIC_GCC_BUILTINS_INCLUDED */