Skip to content
Merged
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
Further improve create_eager_task_factory docstring
  • Loading branch information
jbower-fb authored May 9, 2023
commit 8b5f6c5e7118747479675f422bb80b592d0c3f53
25 changes: 17 additions & 8 deletions Lib/asyncio/tasks.py
Original file line number Diff line number Diff line change
Expand Up @@ -931,14 +931,23 @@ def callback():


def create_eager_task_factory(custom_task_constructor):
"""
Creates a function suitable for use as a task factory on an event-loop.

The tasks created will be started immediately (rather than being first
scheduled to an event loop). The constructor argument can be any callable
that returns a ``Task`` compatible object and has a signature compatible
with ``Task.__init__``, including the ``eager_start`` keyword argument.
"""
"""Create a function suitable for use as a task factory on an event-loop.

Example usage:

loop.set_task_factory(
asyncio.create_eager_task_factory(my_task_constructor))

Now, tasks created will be started immediately (rather than being first
scheduled to an event loop). The constructor argument can be any callable
that returns a Task-compatible object and has a signature compatible
with `Task.__init__`; it must have the `eager_start` keyword argument.

Most applications will use `Task` for `my_task_constructor` and in this
case there's no need to call `create_eager_task_factory()` directly.
Instead the global `eager_task_factory` instance can be used. E.g.
`loop.set_task_factory(asyncio.eager_task_factory)`.
"""

def factory(loop, coro, *, name=None, context=None):
return custom_task_constructor(
Expand Down