diff --git a/FlippR-Driver/src/utilities/BlockingQueue.hpp b/FlippR-Driver/src/utilities/BlockingQueue.hpp index 2e545f3..7515a5f 100644 --- a/FlippR-Driver/src/utilities/BlockingQueue.hpp +++ b/FlippR-Driver/src/utilities/BlockingQueue.hpp @@ -10,8 +10,9 @@ #include #include -#include -#include +#include + +using namespace boost; template class BlockingQueue @@ -19,21 +20,22 @@ class BlockingQueue private: std::mutex d_mutex; std::condition_variable d_condition; - std::priority_queue d_queue; + heap::priority_queue> p_queue; + public: void push(T const& value) { { std::unique_lock lock(this->d_mutex); - d_queue.push_front(value); + p_queue.push_front(value); } this->d_condition.notify_one(); } T pop() { std::unique_lock lock(this->d_mutex); - this->d_condition.wait(lock, [=]{ return !this->d_queue.empty(); }); - T rc(std::move(this->d_queue.back())); - this->d_queue.pop_back(); + this->d_condition.wait(lock, [=]{ return !this->p_queue.empty(); }); + T rc(std::move(this->p_queue.back())); + this->p_queue.pop_back(); return rc; } };