Add comments why we use loop.create_task in core (#112372)

This commit is contained in:
Martin Hjelmare 2024-03-05 18:47:35 +01:00 committed by GitHub
parent 017b2623e8
commit 4d82ea516a
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -605,6 +605,8 @@ class HomeAssistant:
hassjob.target = cast(
Callable[..., Coroutine[Any, Any, _R]], hassjob.target
)
# Use loop.create_task
# to avoid the extra function call in asyncio.create_task.
task = self.loop.create_task(hassjob.target(*args), name=hassjob.name)
elif hassjob.job_type is HassJobType.Callback:
if TYPE_CHECKING:
@ -649,6 +651,8 @@ class HomeAssistant:
if task.done():
return task
else:
# Use loop.create_task
# to avoid the extra function call in asyncio.create_task.
task = self.loop.create_task(target, name=name)
self._tasks.add(task)
task.add_done_callback(self._tasks.remove)
@ -671,6 +675,8 @@ class HomeAssistant:
if task.done():
return task
else:
# Use loop.create_task
# to avoid the extra function call in asyncio.create_task.
task = self.loop.create_task(target, name=name)
self._background_tasks.add(task)
task.add_done_callback(self._background_tasks.remove)