From fe0952588a1e70d77fa922002a444b81e2a8a7d5 Mon Sep 17 00:00:00 2001 From: Isaac Connor Date: Thu, 1 Aug 2024 18:01:28 -0400 Subject: [PATCH] Use get_packet_no_wait and a sleep so that if told to close we give up on getting a packet --- src/zm_event.cpp | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/zm_event.cpp b/src/zm_event.cpp index 531203ba6..f3a54db16 100644 --- a/src/zm_event.cpp +++ b/src/zm_event.cpp @@ -716,8 +716,8 @@ void Event::Run() { // The idea is to process the queue no matter what so that all packets get processed. // We only break if the queue is empty - while (!terminate_) { - ZMLockedPacket *packet_lock = packetqueue->get_packet(packetqueue_it); + while (!terminate_ and !zm_terminate) { + ZMLockedPacket *packet_lock = packetqueue->get_packet_no_wait(packetqueue_it); if (packet_lock) { std::shared_ptr packet = packet_lock->packet_; if (!packet->decoded) { @@ -751,8 +751,8 @@ void Event::Run() { Debug(1, "Deleting packet lock"); delete packet_lock; } else { - //Warning("Unable to get packet lock"); - return; + if (terminate_ or zm_terminate) return; + usleep(10000); } // end if packet_lock } // end while } // end Run()