diff --git a/include/ntapi/bits/i386/nt_atomic_i386_asm__gcc.h b/include/ntapi/bits/i386/nt_atomic_i386_asm__gcc.h index 1e9ed71..adf000f 100644 --- a/include/ntapi/bits/i386/nt_atomic_i386_asm__gcc.h +++ b/include/ntapi/bits/i386/nt_atomic_i386_asm__gcc.h @@ -468,13 +468,9 @@ static __inline__ void at_store_64( prev = *dst; cmp = prev; - __atomic_compare_exchange_n( - dst, - &cmp, - xchg, - 0, - __ATOMIC_SEQ_CST, - __ATOMIC_SEQ_CST); + prev = at_locked_cas_64( + dst,cmp,xchg); + } while (cmp != prev); }