63 void push(
const T &value) {
65 auto node =
new Node();
66 node->value.store(value);
67 node->next.store(
nullptr);
69 tail = this->tail.load();
71 if (
tail == this->tail) {
72 if (next ==
nullptr) {
73 if (
tail->next.compare_exchange_weak(next, node)) {
77 this->tail.compare_exchange_weak(
tail, next);
81 this->tail.compare_exchange_weak(
tail, node);