summaryrefslogtreecommitdiffstats
path: root/src/uscxml/concurrency/BlockingQueue.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/uscxml/concurrency/BlockingQueue.h')
-rw-r--r--src/uscxml/concurrency/BlockingQueue.h8
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()) {