aboutsummaryrefslogtreecommitdiff
path: root/include/MessageQueue.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'include/MessageQueue.hpp')
-rw-r--r--include/MessageQueue.hpp9
1 files changed, 9 insertions, 0 deletions
diff --git a/include/MessageQueue.hpp b/include/MessageQueue.hpp
index 4f1e036..7c34d51 100644
--- a/include/MessageQueue.hpp
+++ b/include/MessageQueue.hpp
@@ -31,6 +31,15 @@ namespace QuickMedia {
return data;
}
+ std::optional<T> pop_if_available() {
+ std::unique_lock<std::mutex> lock(mutex);
+ if(data_queue.empty())
+ return std::nullopt;
+ T data = std::move(data_queue.front());
+ data_queue.pop_front();
+ return data;
+ }
+
void close() {
std::unique_lock<std::mutex> lock(mutex);
running = false;