__ATOMIC_RELAXED
qp_idx = ATOMIC_LOAD_N(uint32_t, &lock->reader_idx, __ATOMIC_RELAXED);
__ATOMIC_RELAXED);
*ret = __atomic_load_n(&refcnt->val, __ATOMIC_RELAXED);
#elif defined(__GNUC__) && defined(__ATOMIC_RELAXED) && __GCC_ATOMIC_INT_LOCK_FREE > 0
*ret = __atomic_fetch_add(&refcnt->val, 1, __ATOMIC_RELAXED) + 1;
#elif defined(__GNUC__) && defined(__ATOMIC_RELAXED)
#define tsan_load(ptr) __atomic_load_n((ptr), __ATOMIC_RELAXED)
#define tsan_store(ptr, val) __atomic_store_n((ptr), (val), __ATOMIC_RELAXED)
#define tsan_add(ptr, n) __atomic_fetch_add((ptr), (n), __ATOMIC_RELAXED)
#ifndef __ATOMIC_RELAXED
memory_order_relaxed = __ATOMIC_RELAXED,