Function BlockingQueue.waitPop

Waits for the next FIFO value or for final queue closure.

Returns

A result with status value and the removed element when work is available. Returns status closed with T.init only after close has been called and every value queued before close has been drained.

Blocking

Sleeps only while the queue is empty and still open. Spurious condition wakes are harmless because the state predicate is always re-checked in a loop.

Allocation

Does not resize or reacquire queue backing storage.

Thread Safety

May be called concurrently by multiple consumers and producers.