30 node->
next.store(
nullptr, std::memory_order_relaxed);
31 Node* prev =
head_.exchange(node, std::memory_order_acq_rel);
32 prev->
next.store(node, std::memory_order_release);
33 return prev == &
stub_;
48 if (
next ==
nullptr) {
54 next = tail->
next.load(std::memory_order_acquire);
56 if (
next !=
nullptr) {
61 Node* head =
head_.load(std::memory_order_acquire);
68 next = tail->
next.load(std::memory_order_acquire);
69 if (
next !=
nullptr) {
104 }
while (node ==
nullptr && !
empty);