From a5211e11388ecd05e2d9244d4db621922032ee93 Mon Sep 17 00:00:00 2001 From: Steffen Vogel Date: Sun, 2 Dec 2018 03:18:33 +0100 Subject: [PATCH] queue_signalled: inherit from Queue --- include/villas/queue_signalled.hpp | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) 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(); } };