From 4c82196fc8965f753c362d3dece7c4e4ac6937d9 Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 12 Mar 2024 10:49:31 -1000 Subject: [PATCH] Avoid some event loop overhead for ESPHome listeners (#113173) --- homeassistant/components/esphome/dashboard.py | 2 +- homeassistant/components/esphome/manager.py | 8 ++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/homeassistant/components/esphome/dashboard.py b/homeassistant/components/esphome/dashboard.py index 54a593fe0cc..b8a72ac4398 100644 --- a/homeassistant/components/esphome/dashboard.py +++ b/homeassistant/components/esphome/dashboard.py @@ -103,7 +103,7 @@ class ESPHomeDashboardManager: await dashboard.async_shutdown() self._cancel_shutdown = hass.bus.async_listen_once( - EVENT_HOMEASSISTANT_STOP, on_hass_stop + EVENT_HOMEASSISTANT_STOP, on_hass_stop, run_immediately=True ) new_data = {"info": {"addon_slug": addon_slug, "host": host, "port": port}} diff --git a/homeassistant/components/esphome/manager.py b/homeassistant/components/esphome/manager.py index ac33265842f..f89e79aae2b 100644 --- a/homeassistant/components/esphome/manager.py +++ b/homeassistant/components/esphome/manager.py @@ -543,11 +543,15 @@ class ESPHomeManager: # "Unable to remove unknown listener # .onetime_listener>" entry_data.cleanup_callbacks.append( - hass.bus.async_listen(EVENT_HOMEASSISTANT_STOP, self.on_stop) + hass.bus.async_listen( + EVENT_HOMEASSISTANT_STOP, self.on_stop, run_immediately=True + ) ) entry_data.cleanup_callbacks.append( hass.bus.async_listen( - EVENT_LOGGING_CHANGED, self._async_handle_logging_changed + EVENT_LOGGING_CHANGED, + self._async_handle_logging_changed, + run_immediately=True, ) )