diff options
Diffstat (limited to 'src/uscxml/concurrency/BlockingQueue.h')
-rw-r--r-- | src/uscxml/concurrency/BlockingQueue.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/src/uscxml/concurrency/BlockingQueue.h b/src/uscxml/concurrency/BlockingQueue.h index f318ccf..0f4c965 100644 --- a/src/uscxml/concurrency/BlockingQueue.h +++ b/src/uscxml/concurrency/BlockingQueue.h @@ -14,12 +14,18 @@ public: virtual ~BlockingQueue() { } - virtual void push(T& elem) { + virtual void push(const T& elem) { tthread::lock_guard<tthread::mutex> lock(_mutex); _queue.push_back(elem); _cond.notify_all(); } + virtual void push_front(const T& elem) { + tthread::lock_guard<tthread::mutex> lock(_mutex); + _queue.push_front(elem); + _cond.notify_all(); + } + virtual T pop() { tthread::lock_guard<tthread::mutex> lock(_mutex); while (_queue.empty()) { |