From b911caa5af2b75dd4b3a6019fd1398fb0ea67e8d Mon Sep 17 00:00:00 2001 From: Ruben van de Ven Date: Sun, 22 Oct 2023 14:03:18 +0200 Subject: [PATCH] Fix not-stopping on loop --- trap/socket_forwarder.py | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/trap/socket_forwarder.py b/trap/socket_forwarder.py index 654128d..a5ab499 100644 --- a/trap/socket_forwarder.py +++ b/trap/socket_forwarder.py @@ -156,9 +156,12 @@ class WsRouter: async def prediction_forwarder(self): logger.info("Starting prediction forwarder") while self.is_running.is_set(): - msg = await self.prediction_socket.recv_string() - logger.debug(f"Forward prediction message of {len(msg)} chars") - WebSocketPredictionHandler.write_to_clients(msg) + # timeout so that if no events occur, loop can still stop on is_running + has_event = await self.prediction_socket.poll(timeout=1) + if has_event: + msg = await self.prediction_socket.recv_string() + logger.debug(f"Forward prediction message of {len(msg)} chars") + WebSocketPredictionHandler.write_to_clients(msg) # die together: self.evt_loop.stop()