Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[3.10] gh-85747: Active voice & suggested edits, 'running/stopping loop' & 'callbacks' subsections of asyncio-eventloop.rst (gh-100270) #102005

Merged
merged 2 commits into from
Feb 18, 2023
Merged
Changes from all commits
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
30 changes: 17 additions & 13 deletions Doc/library/asyncio-eventloop.rst
Original file line number Diff line number Diff line change
Expand Up @@ -192,12 +192,15 @@ Running and stopping the loop
.. coroutinemethod:: loop.shutdown_default_executor()

Schedule the closure of the default executor and wait for it to join all of
the threads in the :class:`ThreadPoolExecutor`. After calling this method, a
:exc:`RuntimeError` will be raised if :meth:`loop.run_in_executor` is called
while using the default executor.
the threads in the :class:`~concurrent.futures.ThreadPoolExecutor`.
Once this method has been called,
using the default executor with :meth:`loop.run_in_executor`
will raise a :exc:`RuntimeError`.

Note that there is no need to call this function when
:func:`asyncio.run` is used.
.. note::

Do not call this method when using :func:`asyncio.run`,
as the latter handles default executor shutdown automatically.

.. versionadded:: 3.9

Expand All @@ -210,22 +213,23 @@ Scheduling callbacks
Schedule the *callback* :term:`callback` to be called with
*args* arguments at the next iteration of the event loop.

Return an instance of :class:`asyncio.Handle`,
which can be used later to cancel the callback.

Callbacks are called in the order in which they are registered.
Each callback will be called exactly once.

An optional keyword-only *context* argument allows specifying a
The optional keyword-only *context* argument specifies a
custom :class:`contextvars.Context` for the *callback* to run in.
The current context is used when no *context* is provided.

An instance of :class:`asyncio.Handle` is returned, which can be
used later to cancel the callback.
Callbacks use the current context when no *context* is provided.

This method is not thread-safe.
Unlike :meth:`call_soon_threadsafe`, this method is not thread-safe.

.. method:: loop.call_soon_threadsafe(callback, *args, context=None)

A thread-safe variant of :meth:`call_soon`. Must be used to
schedule callbacks *from another thread*.
A thread-safe variant of :meth:`call_soon`. When scheduling callbacks from
another thread, this function *must* be used, since :meth:`call_soon` is not
thread-safe.

Raises :exc:`RuntimeError` if called on a loop that's been closed.
This can happen on a secondary thread when the main application is
Expand Down