From eeaf87c7f2e0a395d295bece6b6635e12bc15269 Mon Sep 17 00:00:00 2001 From: James Smith Date: Tue, 19 May 2026 14:51:06 +0100 Subject: [PATCH] perf: move ADS-B SSE snapshot priming into generator --- routes/adsb.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/routes/adsb.py b/routes/adsb.py index 438fe0d..727d93e 100644 --- a/routes/adsb.py +++ b/routes/adsb.py @@ -1281,15 +1281,14 @@ def stream_adsb(): with _adsb_stream_subscribers_lock: _adsb_stream_subscribers.add(client_queue) - # Prime new clients with current known aircraft so they don't wait for the - # next positional update before rendering. - for snapshot in list(app_module.adsb_aircraft.values()): - try: - client_queue.put_nowait({"type": "aircraft", **snapshot}) - except queue.Full: - break - def generate(): + # Prime with current aircraft snapshot before entering the live loop. + for snapshot in list(app_module.adsb_aircraft.values()): + try: + client_queue.put_nowait({"type": "aircraft", **snapshot}) + except queue.Full: + break + last_keepalive = time.time() # Send immediate keepalive so Werkzeug dev server flushes response # headers right away (it buffers until first body byte is written).