|
Grok 20.3.2
|
Thread-safe unbounded queue with blocking pop and close signal. More...
#include <ConcurrentQueue.h>
Public Member Functions | |
| ConcurrentQueue ()=default | |
| void | push (T item) |
| bool | pop (T &item) |
| void | close () |
| size_t | size () const |
Private Attributes | |
| std::queue< T > | queue_ |
| bool | closed_ = false |
| std::mutex | mutex_ |
| std::condition_variable | cv_ |
Thread-safe unbounded queue with blocking pop and close signal.
Producers push items without blocking (except briefly for the lock). Consumers block on pop() when the queue is empty. close() signals that no more items will be pushed; pop() returns false once the queue is both closed and empty.
|
default |
|
inline |
|
inline |
|
inline |
|
inline |
|
private |
|
private |
|
mutableprivate |
|
private |