4 std::lock_guard<std::mutex> lock(_mutex);
6 _condition.notify_one();
10 std::lock_guard<std::mutex> lock(_mutex);
11 if (_queue.empty())
return std::nullopt;
18 std::unique_lock<std::mutex> lock(_mutex);
19 _condition.wait(lock, [
this] {
return !_queue.empty(); });
26 std::lock_guard<std::mutex> lock(_mutex);
27 return _queue.empty();
void push(const GameMessage &item)
Push a GameMessage item into the queue.
GameMessage waitAndPop()
Wait and pop a GameMessage item from the queue. This blocks until an item is available.
bool isEmpty()
Check if the queue is empty.
std::optional< GameMessage > pop()
Try to pop a GameMessage item from the queue.
A structure representing a game message.