Skip to content

Commit

Permalink
pythongh-112622: Pass name to loop create_task method (python#112623)
Browse files Browse the repository at this point in the history
This affects task creation through either `asyncio.create_task()` or `TaskGroup.create_task()` -- the redundant call to `task.set_name()` is skipped. We still call `set_name()` when a task factory is involved, because the task factory call signature (unfortunately) doesn't take a `name` argument.
  • Loading branch information
ordinary-jamie authored and Glyphack committed Jan 27, 2024
1 parent 3853d8e commit bfd9860
Show file tree
Hide file tree
Showing 3 changed files with 7 additions and 6 deletions.
6 changes: 3 additions & 3 deletions Lib/asyncio/taskgroups.py
Original file line number Diff line number Diff line change
Expand Up @@ -158,10 +158,10 @@ def create_task(self, coro, *, name=None, context=None):
if self._aborting:
raise RuntimeError(f"TaskGroup {self!r} is shutting down")
if context is None:
task = self._loop.create_task(coro)
task = self._loop.create_task(coro, name=name)
else:
task = self._loop.create_task(coro, context=context)
task.set_name(name)
task = self._loop.create_task(coro, name=name, context=context)

# optimization: Immediately call the done callback if the task is
# already done (e.g. if the coro was able to complete eagerly),
# and skip scheduling a done callback
Expand Down
5 changes: 2 additions & 3 deletions Lib/asyncio/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -404,11 +404,10 @@ def create_task(coro, *, name=None, context=None):
loop = events.get_running_loop()
if context is None:
# Use legacy API if context is not needed
task = loop.create_task(coro)
task = loop.create_task(coro, name=name)
else:
task = loop.create_task(coro, context=context)
task = loop.create_task(coro, name=name, context=context)

task.set_name(name)
return task


Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
Ensure ``name`` parameter is passed to event loop in
:func:`asyncio.create_task`.

0 comments on commit bfd9860

Please sign in to comment.