From 30e3b9967f36b5ab176e1349518495edd3d78e93 Mon Sep 17 00:00:00 2001 From: Jonas Zeunert Date: Wed, 11 Jul 2018 16:42:13 +0200 Subject: [PATCH] fixed blocking queue --- FlippR-Driver/src/utilities/BlockingQueue.hpp | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/FlippR-Driver/src/utilities/BlockingQueue.hpp b/FlippR-Driver/src/utilities/BlockingQueue.hpp index 62bff58..98a2a1e 100644 --- a/FlippR-Driver/src/utilities/BlockingQueue.hpp +++ b/FlippR-Driver/src/utilities/BlockingQueue.hpp @@ -25,8 +25,10 @@ private: public: void push(T const& value) { - std::unique_lock lock(this->d_mutex); - p_queue.push(value); + { + std::unique_lock lock(this->d_mutex); + p_queue.push(value); + } this->d_condition.notify_one(); } @@ -34,9 +36,9 @@ public: { // TODO die queue funzt net weil wir nich pushen koennen wenn wir im pop warten // TODO denk ma ueber future nach - std::unique_lock lock(this->d_mutex); + std::unique_lock lock(this->d_mutex); this->d_condition.wait(lock, [=]{ return !this->p_queue.empty(); }); - T rc = *this->p_queue.end(); + T rc = *this->p_queue.begin(); this->p_queue.pop(); return rc; }