From fb6c1a348c7b182a264d97c8da864a449038ec39 Mon Sep 17 00:00:00 2001 From: Benjamin Braatz Date: Wed, 15 Sep 2021 04:14:34 +0200 Subject: [PATCH] Do not catch CancelledError. --- controlpi_plugins/wsserver.py | 21 +++++++++------------ 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/controlpi_plugins/wsserver.py b/controlpi_plugins/wsserver.py index b72cb3e..4c369c8 100644 --- a/controlpi_plugins/wsserver.py +++ b/controlpi_plugins/wsserver.py @@ -134,10 +134,7 @@ class WSServer(BasePlugin): async def _handler(self, websocket: WebSocketServerProtocol, path: str) -> None: connection = Connection(self.bus, websocket) - try: - await connection.run() - except asyncio.CancelledError: - pass + await connection.run() async def _process_request(self, path: str, request_headers: Headers) -> Response: @@ -222,14 +219,14 @@ class WSServer(BasePlugin): async def run(self) -> None: """Set up websocket server.""" - serving = False - while not serving: + while True: try: - await serve(self._handler, - host=self._host, - port=self._port, - process_request=self._process_request) - serving = True + async with serve(self._handler, + host=self._host, + port=self._port, + process_request=self._process_request): + print(f"WSServer '{self.name}'" + f" serving on port {self._port}.") + await asyncio.Future() except OSError: await asyncio.sleep(1) - print(f"WSServer '{self.name}' serving on port {self._port}.") -- 2.34.1