Changed safequeue implementation to make it compatible with c++98

This commit is contained in:
Sam Dieck
2017-12-13 00:46:53 -06:00
parent 33c50e34d5
commit 2f11e0e1e5
2 changed files with 7 additions and 16 deletions

View File

@@ -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 )

View File

@@ -2,9 +2,7 @@
#define SAFE_QUEUE_H_
#include <queue>
#include <thread>
#include <mutex>
#include <condition_variable>
#include "support/tinythread.h"
template <typename T>
class SafeQueue
@@ -12,20 +10,19 @@ class SafeQueue
public:
T pop()
{
std::unique_lock<std::mutex> mlock(_mutex);
tthread::lock_guard<tthread::mutex> 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<std::mutex> mlock(_mutex);
tthread::lock_guard<tthread::mutex> 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<T> _queue;
std::mutex _mutex;
std::condition_variable _cond;
tthread::mutex _mutex;
tthread::condition_variable _cond;
};
#endif