Fix wemo push updates delaying shutdown (#116333)

This commit is contained in:
J. Nick Koston 2024-04-28 08:14:45 -05:00 committed by Paulus Schoutsen
parent 1309fc5eda
commit c3cb79e0e9

View File

@ -5,6 +5,7 @@ from __future__ import annotations
import asyncio import asyncio
from dataclasses import dataclass, fields from dataclasses import dataclass, fields
from datetime import timedelta from datetime import timedelta
from functools import partial
import logging import logging
from typing import TYPE_CHECKING, Literal from typing import TYPE_CHECKING, Literal
@ -130,7 +131,14 @@ class DeviceCoordinator(DataUpdateCoordinator[None]): # pylint: disable=hass-en
) )
else: else:
updated = self.wemo.subscription_update(event_type, params) updated = self.wemo.subscription_update(event_type, params)
self.hass.create_task(self._async_subscription_callback(updated)) self.hass.loop.call_soon_threadsafe(
partial(
self.hass.async_create_background_task,
self._async_subscription_callback(updated),
f"{self.name} subscription_callback",
eager_start=True,
)
)
async def async_shutdown(self) -> None: async def async_shutdown(self) -> None:
"""Unregister push subscriptions and remove from coordinators dict.""" """Unregister push subscriptions and remove from coordinators dict."""