Use acquire/release ordering when accessing svm_fifo shared variable cursize
[vpp.git] / src / svm / svm_fifo.h
index e049d3e..791b513 100644 (file)
@@ -113,19 +113,19 @@ u8 *svm_fifo_replay (u8 * s, svm_fifo_t * f, u8 no_read, u8 verbose);
 static inline u32
 svm_fifo_max_dequeue (svm_fifo_t * f)
 {
-  return f->cursize;
+  return clib_atomic_load_acq_n (&f->cursize);
 }
 
 static inline int
 svm_fifo_is_full (svm_fifo_t * f)
 {
-  return (f->cursize == f->nitems);
+  return (clib_atomic_load_acq_n (&f->cursize) == f->nitems);
 }
 
 static inline int
 svm_fifo_is_empty (svm_fifo_t * f)
 {
-  return (f->cursize == 0);
+  return (clib_atomic_load_acq_n (&f->cursize) == 0);
 }
 
 static inline u32