diff options
Diffstat (limited to 'include/MessageQueue.hpp')
-rw-r--r-- | include/MessageQueue.hpp | 9 |
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; |