Avoid tracking tasks that finish right away (#111690)

This commit is contained in:
J. Nick Koston 2024-02-27 19:09:34 -10:00 committed by GitHub
parent 470d121f5c
commit b9718fe2e9
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 8 additions and 0 deletions

View file

@ -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

View file

@ -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)