mirror of
https://github.com/home-assistant/core.git
synced 2025-07-19 11:17:21 +00:00
Avoid more task creation in the discovery helper (#90552)
* Avoid more task creation in the discovery helper There is no longer a reason to awaiti the jobs being dispatched since nothing was using the result and there is no risk of job being garbage collected prematurely anymore since the task revamp * Update homeassistant/helpers/discovery.py
This commit is contained in:
parent
ed673a1b35
commit
2e0ecf9bd9
@ -46,16 +46,15 @@ def async_listen(
|
|||||||
"""
|
"""
|
||||||
job = core.HassJob(callback, f"discovery listener {service}")
|
job = core.HassJob(callback, f"discovery listener {service}")
|
||||||
|
|
||||||
async def discovery_event_listener(discovered: DiscoveryDict) -> None:
|
@core.callback
|
||||||
|
def _async_discovery_event_listener(discovered: DiscoveryDict) -> None:
|
||||||
"""Listen for discovery events."""
|
"""Listen for discovery events."""
|
||||||
task = hass.async_run_hass_job(
|
hass.async_run_hass_job(job, discovered["service"], discovered["discovered"])
|
||||||
job, discovered["service"], discovered["discovered"]
|
|
||||||
)
|
|
||||||
if task:
|
|
||||||
await task
|
|
||||||
|
|
||||||
async_dispatcher_connect(
|
async_dispatcher_connect(
|
||||||
hass, SIGNAL_PLATFORM_DISCOVERED.format(service), discovery_event_listener
|
hass,
|
||||||
|
SIGNAL_PLATFORM_DISCOVERED.format(service),
|
||||||
|
_async_discovery_event_listener,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
@ -105,17 +104,17 @@ def async_listen_platform(
|
|||||||
service = EVENT_LOAD_PLATFORM.format(component)
|
service = EVENT_LOAD_PLATFORM.format(component)
|
||||||
job = core.HassJob(callback, f"platform loaded {component}")
|
job = core.HassJob(callback, f"platform loaded {component}")
|
||||||
|
|
||||||
async def discovery_platform_listener(discovered: DiscoveryDict) -> None:
|
@core.callback
|
||||||
|
def _async_discovery_platform_listener(discovered: DiscoveryDict) -> None:
|
||||||
"""Listen for platform discovery events."""
|
"""Listen for platform discovery events."""
|
||||||
if not (platform := discovered["platform"]):
|
if not (platform := discovered["platform"]):
|
||||||
return
|
return
|
||||||
|
hass.async_run_hass_job(job, platform, discovered.get("discovered"))
|
||||||
task = hass.async_run_hass_job(job, platform, discovered.get("discovered"))
|
|
||||||
if task:
|
|
||||||
await task
|
|
||||||
|
|
||||||
return async_dispatcher_connect(
|
return async_dispatcher_connect(
|
||||||
hass, SIGNAL_PLATFORM_DISCOVERED.format(service), discovery_platform_listener
|
hass,
|
||||||
|
SIGNAL_PLATFORM_DISCOVERED.format(service),
|
||||||
|
_async_discovery_platform_listener,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user