From 7ec97403d2b0834ccf84318c2fd116a9c77a5c0f Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 12 May 2022 10:50:04 -0400 Subject: [PATCH] Introduce packetqueue::stop which just sets the deleting flag and sends out a notify. The idea is to call it before clear(). --- src/zm_packetqueue.cpp | 5 +++++ src/zm_packetqueue.h | 1 + 2 files changed, 6 insertions(+) diff --git a/src/zm_packetqueue.cpp b/src/zm_packetqueue.cpp index 888f1b5d7..8e397197b 100644 --- a/src/zm_packetqueue.cpp +++ b/src/zm_packetqueue.cpp @@ -364,6 +364,11 @@ void PacketQueue::clearPackets(const std::shared_ptr &add_packet) { return; } // end voidPacketQueue::clearPackets(ZMPacket* zm_packet) +void PacketQueue::stop() { + deleting = true; + condition.notify_all(); +} + void PacketQueue::clear() { deleting = true; condition.notify_all(); diff --git a/src/zm_packetqueue.h b/src/zm_packetqueue.h index a40e89833..a9e1228be 100644 --- a/src/zm_packetqueue.h +++ b/src/zm_packetqueue.h @@ -60,6 +60,7 @@ class PacketQueue { void setKeepKeyframes(bool k) { keep_keyframes = k; }; bool queuePacket(std::shared_ptr packet); + void stop(); void clear(); void dumpQueue(); unsigned int size();