- head = atomic_load_explicit(&q->head, memory_order_relaxed);
- tail = atomic_load_explicit(&q->tail, memory_order_relaxed);
- next = atomic_load_explicit(&q->nodes[get_ptr(head)].next, memory_order_relaxed);
- if (atomic_load(&q->head) == head) {
+ head = atomic_load_explicit(&q->head, acquire);
+ tail = atomic_load_explicit(&q->tail, acquire);
+ next = atomic_load_explicit(&q->nodes[get_ptr(head)].next, acquire);
+ if (atomic_load_explicit(&q->head, acquire) == head) {