64 void push(
const T &value) {
66 auto node =
new Node();
67 node->value.store(value);
68 node->next.store(
nullptr);
70 tail = this->tail.load();
72 if (
tail == this->tail) {
73 if (next ==
nullptr) {
74 if (
tail->next.compare_exchange_weak(next, node)) {
78 this->tail.compare_exchange_weak(
tail, next);
82 this->tail.compare_exchange_weak(
tail, node);