3#include <condition_variable>
15 bool Push(
const std::function<
void()>& command)
18 std::lock_guard<std::mutex> lock(mutex_);
30 bool Pop(std::function<
void()>& command)
32 std::unique_lock<std::mutex> lock(mutex_);
33 cond_.wait(lock, [
this]() {
return closed_ || !queue_.empty(); });
40 command = std::move(queue_.front());
48 std::lock_guard<std::mutex> lock(mutex_);
56 std::condition_variable cond_;
57 std::queue<std::function<void()>> queue_;
A simple thread-safe command queue.
Definition command_queue.h:12
bool Pop(std::function< void()> &command)
Blocks until a command is available or the queue is closed.
Definition command_queue.h:30
bool Push(const std::function< void()> &command)
Push a new command into the queue.
Definition command_queue.h:15