Release all pending WebSocket calls on connection close (#3401)

This commit is contained in:
Stefan Agner 2022-01-11 13:18:49 +01:00 committed by GitHub
parent 603d19b075
commit 8071b107e7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -51,6 +51,12 @@ class WSClient:
async def close(self) -> None: async def close(self) -> None:
"""Close down the client.""" """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: if not self._client.closed:
await self._client.close() await self._client.close()
@ -234,6 +240,7 @@ class HomeAssistantWebSocket(CoreSysAttributes):
except HomeAssistantWSConnectionError: except HomeAssistantWSConnectionError:
await self._client.close() await self._client.close()
self._client = None self._client = None
raise
async def async_supervisor_update_event( async def async_supervisor_update_event(
self, self,