{
/* 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);
}
/**
* Unsets fifo event flag.
*
- * Also acts as a release barrier.
+ * Also acts as an acquire barrier.
*/
always_inline void
svm_fifo_unset_event (svm_fifo_t * f)
{
- clib_atomic_release (&f->has_event);
+ clib_atomic_swap_acq_n (&f->has_event, 0);
}
svm_fifo_t *svm_fifo_create (u32 data_size_in_bytes);