From 2f11e0e1e5c26c9a65b25aba527c8bbb7a72236e Mon Sep 17 00:00:00 2001 From: Sam Dieck Date: Wed, 13 Dec 2017 00:46:53 -0600 Subject: [PATCH] Changed safequeue implementation to make it compatible with c++98 --- src/CMakeLists.txt | 1 - src/inc/safequeue.h | 22 +++++++--------------- 2 files changed, 7 insertions(+), 16 deletions(-) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 960ee27..c1df54e 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -130,7 +130,6 @@ ELSE() ENDIF() -set (CMAKE_CXX_STANDARD 11) set(CMAKE_CSS_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -Wall ") if (NOT IOS) ADD_EXECUTABLE( alpr main.cpp ) diff --git a/src/inc/safequeue.h b/src/inc/safequeue.h index 03e07ec..5e31299 100644 --- a/src/inc/safequeue.h +++ b/src/inc/safequeue.h @@ -2,9 +2,7 @@ #define SAFE_QUEUE_H_ #include -#include -#include -#include +#include "support/tinythread.h" template class SafeQueue @@ -12,20 +10,19 @@ class SafeQueue public: T pop() { - std::unique_lock mlock(_mutex); + tthread::lock_guard mlock(_mutex); while (_queue.empty()) { - _cond.wait(mlock); + _cond.wait(_mutex); } - auto val = _queue.front(); + T val = _queue.front(); _queue.pop(); return val; } void push(const T& item) { - std::unique_lock mlock(_mutex); + tthread::lock_guard mlock(_mutex); _queue.push(item); - mlock.unlock(); _cond.notify_one(); } @@ -34,15 +31,10 @@ class SafeQueue return _queue.empty(); } - SafeQueue() = default; - // Disable copying and assignments - SafeQueue(const SafeQueue&) = delete; - SafeQueue& operator=(const SafeQueue&) = delete; - private: std::queue _queue; - std::mutex _mutex; - std::condition_variable _cond; + tthread::mutex _mutex; + tthread::condition_variable _cond; }; #endif