| 14 | } |
| 15 | |
| 16 | void push(int data) |
| 17 | { |
| 18 | rl::var<node*> n = new node (); |
| 19 | n($)->data_($) = data; |
| 20 | node* next = head_.load(rl::memory_order_relaxed); |
| 21 | for (;;) |
| 22 | { |
| 23 | n($)->next_.store(next, rl::memory_order_relaxed); |
| 24 | if (head_.compare_exchange_weak(next, n($), rl::memory_order_release)) |
| 25 | break; |
| 26 | } |
| 27 | } |
| 28 | |
| 29 | int pop() |
| 30 | { |
no test coverage detected