From 01b19776305aa259e2f8f2b53f999bf08f3ef4c0 Mon Sep 17 00:00:00 2001 From: DJ2LS Date: Fri, 15 Mar 2024 13:28:21 +0100 Subject: [PATCH] avoid event queue overflow --- modem/arq_session.py | 6 ++++++ modem/event_manager.py | 2 ++ 2 files changed, 8 insertions(+) diff --git a/modem/arq_session.py b/modem/arq_session.py index 67992fc7..0db45356 100644 --- a/modem/arq_session.py +++ b/modem/arq_session.py @@ -152,6 +152,12 @@ class ARQSession(): self.snr_histogram.append(self.snr) self.bpm_histogram.append(stats['bytes_per_minute']) self.time_histogram.append(datetime.datetime.now().isoformat()) + + # Limit the size of each histogram to the last 20 entries + self.snr_histogram = self.snr_histogram[-20:] + self.bpm_histogram = self.bpm_histogram[-20:] + self.time_histogram = self.time_histogram[-20:] + return stats def get_appropriate_speed_level(self, snr): diff --git a/modem/event_manager.py b/modem/event_manager.py index ab19eff0..f4705cae 100644 --- a/modem/event_manager.py +++ b/modem/event_manager.py @@ -12,6 +12,8 @@ class EventManager: def broadcast(self, data): for q in self.queues: self.logger.debug(f"Event: ", ev=data) + if q.qsize() > 10: + q.queue.clear() q.put(data) def send_ptt_change(self, on:bool = False):