memory_order_relaxed
*ret = atomic_fetch_add_explicit(&refcnt->val, 1, memory_order_relaxed) + 1;
#define tsan_load(ptr) atomic_load_explicit((ptr), memory_order_relaxed)
#define tsan_store(ptr, val) atomic_store_explicit((ptr), (val), memory_order_relaxed)
#define tsan_add(ptr, n) atomic_fetch_add_explicit((ptr), (n), memory_order_relaxed)
atomic_fetch_add_explicit(&ask[i], 1, memory_order_relaxed);
atomic_fetch_add_explicit(&got[i], 1, memory_order_relaxed);
memory_order_relaxed);
while (atomic_load_explicit(&finish, memory_order_relaxed) != 1)
atomic_store_explicit(&finish, 2, memory_order_relaxed);
atomic_store_explicit(&finish, 1, memory_order_relaxed);
while (atomic_load_explicit(&finish, memory_order_relaxed) != 2)
atomic_signal_fence(memory_order_relaxed);
atomic_signal_fence(memory_order_relaxed);
atomic_flag_clear_explicit(&f, memory_order_relaxed);
atomic_store_explicit(&b, true, memory_order_relaxed);
assert(atomic_load_explicit(&b, memory_order_relaxed) == true);
atomic_fetch_sub_explicit(&ap, 2, memory_order_relaxed);
atomic_fetch_add_explicit(&ap, 1, memory_order_relaxed);
assert(atomic_load_explicit(&x, memory_order_relaxed) == 42);
atomic_store_explicit(&x, 7, memory_order_relaxed);
assert(atomic_load_explicit(&x, memory_order_relaxed) == 7);
atomic_flag_clear_explicit(&f, memory_order_relaxed);
memory_order_relaxed,
atomic_fetch_add_explicit(&sigs, 1, memory_order_relaxed);