aboutsummaryrefslogtreecommitdiff
path: root/include/MessageQueue.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/MessageQueue.hpp')
-rw-r--r--include/MessageQueue.hpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/include/MessageQueue.hpp b/include/MessageQueue.hpp
index ba28431..1e48102 100644
--- a/include/MessageQueue.hpp
+++ b/include/MessageQueue.hpp
@@ -59,14 +59,18 @@ namespace QuickMedia {
}
// Return true from |callback| to remove the element
- void erase_if(std::function<bool(T&)> callback) {
+ int erase_if(std::function<bool(T&)> callback) {
std::unique_lock<std::mutex> lock(mutex);
+ int removed = 0;
for(auto it = data_queue.begin(); it != data_queue.end();) {
- if(callback(*it))
+ if(callback(*it)) {
it = data_queue.erase(it);
- else
+ ++removed;
+ } else {
++it;
+ }
}
+ return removed;
}
bool is_running() const {