diff options
Diffstat (limited to 'src/ThreadsafeQueue.h')
-rw-r--r-- | src/ThreadsafeQueue.h | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/src/ThreadsafeQueue.h b/src/ThreadsafeQueue.h index 3dd5450..78e9ef0 100644 --- a/src/ThreadsafeQueue.h +++ b/src/ThreadsafeQueue.h @@ -54,7 +54,8 @@ public: /* Create a queue where it has to contain at least * required_size elements before pop is possible */ - ThreadsafeQueue(size_t required_size) : the_required_size(required_size) {} + ThreadsafeQueue(size_t required_size) : the_required_size(required_size) { + } /* Push one element into the queue, and notify another thread that * might be waiting. @@ -84,6 +85,11 @@ public: return the_queue.empty(); } + size_t size() const + { + return the_queue.size(); + } + bool try_pop(T& popped_value) { boost::mutex::scoped_lock lock(the_mutex); @@ -100,8 +106,7 @@ public: void wait_and_pop(T& popped_value) { boost::mutex::scoped_lock lock(the_mutex); - while(the_queue.size() < the_required_size) - { + while(the_queue.size() < the_required_size) { the_condition_variable.wait(lock); } |