summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Skinn <brian.skinn@gmail.com>2023-02-18 23:57:41 (GMT)
committerGitHub <noreply@github.com>2023-02-18 23:57:41 (GMT)
commit2b1a62c6695e7b51e941d6b6be71f1fef676d360 (patch)
treeb448557bd85dc4e237360ded084725d265327bde
parent92050e87677548e9283f32c18c984f1cf1d4fc76 (diff)
downloadcpython-2b1a62c6695e7b51e941d6b6be71f1fef676d360.zip
cpython-2b1a62c6695e7b51e941d6b6be71f1fef676d360.tar.gz
cpython-2b1a62c6695e7b51e941d6b6be71f1fef676d360.tar.bz2
[3.10] gh-85747: Active voice & suggested edits, 'running/stopping loop' & 'callbacks' subsections of asyncio-eventloop.rst (gh-100270) (#102005)
Note: The `timeout` parameter was not added until Python 3.12. (cherry picked from commit c4de6b1d52304a0a9cdfafc1dad5098993710404) Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu>
-rw-r--r--Doc/library/asyncio-eventloop.rst30
1 files changed, 17 insertions, 13 deletions
diff --git a/Doc/library/asyncio-eventloop.rst b/Doc/library/asyncio-eventloop.rst
index 80440da..759e30a 100644
--- a/Doc/library/asyncio-eventloop.rst
+++ b/Doc/library/asyncio-eventloop.rst
@@ -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
@@ -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