6#include <condition_variable>
21 { std::lock_guard<std::mutex> lock(mutex_); queue_.push(std::move(item)); }
27 std::unique_lock<std::mutex> lock(mutex_);
28 cond_.wait(lock, [
this] {
return !queue_.empty() || closed_; });
29 if (queue_.empty())
return false;
31 item = std::move(queue_.front());
38 { std::lock_guard<std::mutex> lock(mutex_); closed_ =
true; }
44 std::lock_guard<std::mutex> lock(mutex_);
52 std::condition_variable cond_;
Definition thread_safe_queue.h:16
void reopen()
Definition thread_safe_queue.h:42
void push(T item)
Definition thread_safe_queue.h:19
bool wait_pop(T &item)
Definition thread_safe_queue.h:25
void close()
Definition thread_safe_queue.h:36
Definition configuration.h:10