From 8071b107e735461d9defbcce8ebdbc845ebdcf3b Mon Sep 17 00:00:00 2001 From: Stefan Agner Date: Tue, 11 Jan 2022 13:18:49 +0100 Subject: [PATCH] Release all pending WebSocket calls on connection close (#3401) --- supervisor/homeassistant/websocket.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/supervisor/homeassistant/websocket.py b/supervisor/homeassistant/websocket.py index a2106e476..2f1af1e5f 100644 --- a/supervisor/homeassistant/websocket.py +++ b/supervisor/homeassistant/websocket.py @@ -51,6 +51,12 @@ class WSClient: async def close(self) -> None: """Close down the client.""" + for future in self._futures.values(): + if not future.done(): + future.set_exception( + HomeAssistantWSConnectionError("Connection was closed") + ) + if not self._client.closed: await self._client.close() @@ -234,6 +240,7 @@ class HomeAssistantWebSocket(CoreSysAttributes): except HomeAssistantWSConnectionError: await self._client.close() self._client = None + raise async def async_supervisor_update_event( self,