From 3ecbd05ac02bf938b703b685b9f3ae2d656a496c Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Fri, 23 Feb 2024 05:50:39 -1000 Subject: [PATCH] Avoid creating tasks to register hassio panels (#111206) panel_custom never suspends so we can avoid the overhead of creating and scheduling tasks https://github.com/home-assistant/core/blob/e398accc3e2758080a39261adf07a71b9754676e/homeassistant/components/panel_custom/__init__.py#L74 panel_custom.async_register_panel could be converted to a normal function but it would be a breaking change --- homeassistant/components/hassio/addon_panel.py | 14 ++++---------- 1 file changed, 4 insertions(+), 10 deletions(-) diff --git a/homeassistant/components/hassio/addon_panel.py b/homeassistant/components/hassio/addon_panel.py index 8ebf4bf5cca..db53b2f90fc 100644 --- a/homeassistant/components/hassio/addon_panel.py +++ b/homeassistant/components/hassio/addon_panel.py @@ -1,5 +1,4 @@ """Implement the Ingress Panel feature for Hass.io Add-ons.""" -import asyncio from http import HTTPStatus import logging from typing import Any @@ -27,18 +26,13 @@ async def async_setup_addon_panel(hass: HomeAssistant, hassio: HassIO) -> None: return # Register available panels - jobs: list[asyncio.Task[None]] = [] for addon, data in panels.items(): if not data[ATTR_ENABLE]: continue - jobs.append( - asyncio.create_task( - _register_panel(hass, addon, data), name=f"register panel {addon}" - ) - ) - - if jobs: - await asyncio.wait(jobs) + # _register_panel never suspends and is only + # a coroutine because it would be a breaking change + # to make it a normal function + await _register_panel(hass, addon, data) class HassIOAddonPanel(HomeAssistantView):