3#include <condition_variable>
17 std::queue<fishnet::Option<T>>
queue;
24 this->
put(POISON_PILL);
33 std::unique_lock<std::mutex> lock(
mutex);
34 this->queue.push(std::move(element));
42 std::unique_lock<std::mutex>lock(
mutex);
43 while(this->queue.empty()){
54 std::lock_guard<std::mutex> lock(
mutex);
55 return this->queue.size();
Blocking queue implementation. Blocks when no elements are present and take() is called until further...
Definition BlockingQueue.hpp:14
fishnet::Option< T > take()
Definition BlockingQueue.hpp:39
std::queue< fishnet::Option< T > > queue
Definition BlockingQueue.hpp:17
size_t size() const
Definition BlockingQueue.hpp:53
std::condition_variable waitOnNotEmpty
Definition BlockingQueue.hpp:18
const fishnet::Option< T > & getPoisonPill()
Definition BlockingQueue.hpp:27
virtual void put(fishnet::Option< T > element)
Definition BlockingQueue.hpp:31
static fishnet::Option< T > POISON_PILL
Definition BlockingQueue.hpp:20
void putPoisonPill()
Definition BlockingQueue.hpp:23
std::condition_variable waitOnNotFull
Definition BlockingQueue.hpp:19
std::mutex mutex
Definition BlockingQueue.hpp:16
Definition AlternativeKeyMap.hpp:4