| 874 | // waits until an element is available, then dequeues it. |
| 875 | template<typename U> |
| 876 | void wait_dequeue(U& result) AE_NO_TSAN |
| 877 | { |
| 878 | while (!sema->wait()); |
| 879 | bool success = inner.try_dequeue(result); |
| 880 | AE_UNUSED(result); |
| 881 | assert(success); |
| 882 | AE_UNUSED(success); |
| 883 | } |
| 884 | |
| 885 | |
| 886 | // Attempts to dequeue an element; if the queue is empty, |