diff --git a/arch/wasm32/atomic_arch.h b/arch/wasm32/atomic_arch.h index d067050b..78b183cb 100644 --- a/arch/wasm32/atomic_arch.h +++ b/arch/wasm32/atomic_arch.h @@ -6,6 +6,13 @@ #define a_barrier() syscall(__NR_membarrier) -#define a_cas(p, t, s) (abort(), s) +#define a_cas a_cas +static inline int a_cas(volatile int *p, int t, int s) +{ + int old = *p; + if (old == t) + *p = s; + return old; +} #define a_crash() abort()