diff --git a/include/villas/queue_signalled.hpp b/include/villas/queue_signalled.hpp index 90b77a3dd..98a9e1f2a 100644 --- a/include/villas/queue_signalled.hpp +++ b/include/villas/queue_signalled.hpp @@ -25,15 +25,15 @@ #include #include -#include + +#include namespace villas { template -class QueueSignalled { +class QueueSignalled : public Queue { private: - std::queue queue; std::mutex mutex; std::condition_variable cv; @@ -42,7 +42,8 @@ public: { std::lock_guard l(mutex); - queue.push(data); + Queue::push(data); + cv.notify_one(); } @@ -50,20 +51,17 @@ public: { std::unique_lock l(mutex); - while(queue.empty()) - cv.wait(l); + while (Queue::empty()) + cv.wait(l); - T res = queue.front(); - queue.pop(); - - return res; + return Queue::pop(); } bool empty() { std::unique_lock l(mutex); - return queue.empty(); + return Queue::empty(); } };