From b9718fe2e906ece0b51ee82c3393559cd7dd3f7e Mon Sep 17 00:00:00 2001 From: "J. Nick Koston" Date: Tue, 27 Feb 2024 19:09:34 -1000 Subject: [PATCH] Avoid tracking tasks that finish right away (#111690) --- homeassistant/config_entries.py | 4 ++++ homeassistant/core.py | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/homeassistant/config_entries.py b/homeassistant/config_entries.py index bd83a922df4..864ad90344a 100644 --- a/homeassistant/config_entries.py +++ b/homeassistant/config_entries.py @@ -929,6 +929,8 @@ class ConfigEntry: task = hass.async_create_task( target, f"{name} {self.title} {self.domain} {self.entry_id}", eager_start ) + if task.done(): + return task self._tasks.add(task) task.add_done_callback(self._tasks.remove) @@ -949,6 +951,8 @@ class ConfigEntry: target: target to call. """ task = hass.async_create_background_task(target, name, eager_start) + if task.done(): + return task self._background_tasks.add(task) task.add_done_callback(self._background_tasks.remove) return task diff --git a/homeassistant/core.py b/homeassistant/core.py index 6aaab452e39..47a21f3325b 100644 --- a/homeassistant/core.py +++ b/homeassistant/core.py @@ -637,6 +637,8 @@ class HomeAssistant: """ if eager_start: task = create_eager_task(target, name=name, loop=self.loop) + if task.done(): + return task else: task = self.loop.create_task(target, name=name) self._tasks.add(task) @@ -657,6 +659,8 @@ class HomeAssistant: """ if eager_start: task = create_eager_task(target, name=name, loop=self.loop) + if task.done(): + return task else: task = self.loop.create_task(target, name=name) self._background_tasks.add(task)