Skip to content

Commit a781af1

Browse files
committed
FIX: lockfree BatchMPMCQueue on aarch64
1 parent 85e037c commit a781af1

1 file changed

Lines changed: 2 additions & 2 deletions

File tree

common/lockfree_queue.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -295,7 +295,7 @@ class LockfreeBatchMPMCRingQueue : public LockfreeRingQueueBase<T, N> {
295295

296296
size_t push_batch(const T *x, size_t n) {
297297
size_t rh, wt;
298-
wt = tail.load(std::memory_order_relaxed);
298+
wt = tail.load(std::memory_order_acquire);
299299
for (;;) {
300300
rh = head.load(std::memory_order_acquire);
301301
auto wn = std::min(n, Base::capacity - (wt - rh));
@@ -325,7 +325,7 @@ class LockfreeBatchMPMCRingQueue : public LockfreeRingQueueBase<T, N> {
325325

326326
size_t pop_batch(T *x, size_t n) {
327327
size_t rt, wh;
328-
rt = read_tail.load(std::memory_order_relaxed);
328+
rt = read_tail.load(std::memory_order_acquire);
329329
for (;;) {
330330
wh = write_head.load(std::memory_order_acquire);
331331
auto rn = std::min(n, wh - rt);

0 commit comments

Comments
 (0)