{
/* return __sync_lock_test_and_set (&f->has_event, 1) == 0;
return __sync_bool_compare_and_swap (&f->has_event, 0, 1); */
- return !__atomic_exchange_n (&f->has_event, 1, __ATOMIC_RELEASE);
+ return !clib_atomic_swap_rel_n (&f->has_event, 1);
}
/**
always_inline void
svm_fifo_unset_event (svm_fifo_t * f)
{
- __atomic_exchange_n (&f->has_event, 0, __ATOMIC_ACQUIRE);
+ clib_atomic_swap_acq_n (&f->has_event, 0);
}
svm_fifo_t *svm_fifo_create (u32 data_size_in_bytes);
#define clib_atomic_load_acq_n(a) __atomic_load_n((a), __ATOMIC_ACQUIRE)
#define clib_atomic_store_rel_n(a, b) __atomic_store_n ((a), (b), __ATOMIC_RELEASE)
#define clib_atomic_swap_acq_n(a, b) __atomic_exchange_n ((a), (b), __ATOMIC_ACQUIRE)
+#define clib_atomic_swap_rel_n(a, b) __atomic_exchange_n ((a), (b), __ATOMIC_RELEASE)
#define clib_atomic_fetch_add_rel(a, b) __atomic_fetch_add((a), (b), __ATOMIC_RELEASE)
#define clib_atomic_fetch_sub_rel(a, b) __atomic_fetch_sub((a), (b), __ATOMIC_RELEASE)