mirror of
https://github.com/python/cpython.git
synced 2025-09-27 02:39:58 +00:00
gh-96377: Update asyncio policy doc intro paras to be clear and accurate (GH-97603)
Also fix up some cross-references in the asyncio docs.
(cherry picked from commit cc0f3a10f0
)
Co-authored-by: C.A.M. Gerlach <CAM.Gerlach@Gerlach.CAM>
This commit is contained in:
parent
f391b3c6ab
commit
c2ec6da74f
4 changed files with 30 additions and 13 deletions
|
@ -109,7 +109,7 @@ that the event loop runs in.
|
||||||
|
|
||||||
There is currently no way to schedule coroutines or callbacks directly
|
There is currently no way to schedule coroutines or callbacks directly
|
||||||
from a different process (such as one started with
|
from a different process (such as one started with
|
||||||
:mod:`multiprocessing`). The :ref:`Event Loop Methods <asyncio-event-loop>`
|
:mod:`multiprocessing`). The :ref:`asyncio-event-loop-methods`
|
||||||
section lists APIs that can read from pipes and watch file descriptors
|
section lists APIs that can read from pipes and watch file descriptors
|
||||||
without blocking the event loop. In addition, asyncio's
|
without blocking the event loop. In addition, asyncio's
|
||||||
:ref:`Subprocess <asyncio-subprocess>` APIs provide a way to start a
|
:ref:`Subprocess <asyncio-subprocess>` APIs provide a way to start a
|
||||||
|
|
|
@ -1,6 +1,8 @@
|
||||||
.. currentmodule:: asyncio
|
.. currentmodule:: asyncio
|
||||||
|
|
||||||
|
|
||||||
|
.. _asyncio-event-loop:
|
||||||
|
|
||||||
==========
|
==========
|
||||||
Event Loop
|
Event Loop
|
||||||
==========
|
==========
|
||||||
|
@ -92,7 +94,7 @@ This documentation page contains the following sections:
|
||||||
loop APIs.
|
loop APIs.
|
||||||
|
|
||||||
|
|
||||||
.. _asyncio-event-loop:
|
.. _asyncio-event-loop-methods:
|
||||||
|
|
||||||
Event Loop Methods
|
Event Loop Methods
|
||||||
==================
|
==================
|
||||||
|
@ -1586,6 +1588,7 @@ Do not instantiate the class directly.
|
||||||
|
|
||||||
|
|
||||||
.. _asyncio-event-loops:
|
.. _asyncio-event-loops:
|
||||||
|
.. _asyncio-event-loop-implementations:
|
||||||
|
|
||||||
Event Loop Implementations
|
Event Loop Implementations
|
||||||
==========================
|
==========================
|
||||||
|
@ -1632,7 +1635,7 @@ on Unix and :class:`ProactorEventLoop` on Windows.
|
||||||
|
|
||||||
Abstract base class for asyncio-compliant event loops.
|
Abstract base class for asyncio-compliant event loops.
|
||||||
|
|
||||||
The :ref:`Event Loop Methods <asyncio-event-loop>` section lists all
|
The :ref:`asyncio-event-loop-methods` section lists all
|
||||||
methods that an alternative implementation of ``AbstractEventLoop``
|
methods that an alternative implementation of ``AbstractEventLoop``
|
||||||
should have defined.
|
should have defined.
|
||||||
|
|
||||||
|
|
|
@ -37,7 +37,7 @@ Event Loop Methods
|
||||||
==================
|
==================
|
||||||
|
|
||||||
See also the main documentation section about the
|
See also the main documentation section about the
|
||||||
:ref:`event loop methods <asyncio-event-loop>`.
|
:ref:`asyncio-event-loop-methods`.
|
||||||
|
|
||||||
.. rubric:: Lifecycle
|
.. rubric:: Lifecycle
|
||||||
.. list-table::
|
.. list-table::
|
||||||
|
|
|
@ -7,22 +7,29 @@
|
||||||
Policies
|
Policies
|
||||||
========
|
========
|
||||||
|
|
||||||
An event loop policy is a global per-process object that controls
|
An event loop policy is a global (per-interpreter) object
|
||||||
the management of the event loop. Each event loop has a default
|
used to get and set the current :ref:`event loop <asyncio-event-loop>`,
|
||||||
policy, which can be changed and customized using the policy API.
|
as well as create new event loops.
|
||||||
|
The default policy can be :ref:`replaced <asyncio-policy-get-set>` with
|
||||||
|
:ref:`built-in alternatives <asyncio-policy-builtin>`
|
||||||
|
to use different event loop implementations,
|
||||||
|
or substituted by a :ref:`custom policy <asyncio-custom-policies>`
|
||||||
|
that can override these behaviors.
|
||||||
|
|
||||||
A policy defines the notion of *context* and manages a
|
The :ref:`policy object <asyncio-policy-objects>`
|
||||||
separate event loop per context. The default policy
|
gets and sets a separate event loop per *context*.
|
||||||
defines *context* to be the current thread.
|
This is per-thread by default,
|
||||||
|
though custom policies could define *context* differently.
|
||||||
|
|
||||||
By using a custom event loop policy, the behavior of
|
Custom event loop policies can control the behavior of
|
||||||
:func:`get_event_loop`, :func:`set_event_loop`, and
|
:func:`get_event_loop`, :func:`set_event_loop`, and :func:`new_event_loop`.
|
||||||
:func:`new_event_loop` functions can be customized.
|
|
||||||
|
|
||||||
Policy objects should implement the APIs defined
|
Policy objects should implement the APIs defined
|
||||||
in the :class:`AbstractEventLoopPolicy` abstract base class.
|
in the :class:`AbstractEventLoopPolicy` abstract base class.
|
||||||
|
|
||||||
|
|
||||||
|
.. _asyncio-policy-get-set:
|
||||||
|
|
||||||
Getting and Setting the Policy
|
Getting and Setting the Policy
|
||||||
==============================
|
==============================
|
||||||
|
|
||||||
|
@ -40,6 +47,8 @@ for the current process:
|
||||||
If *policy* is set to ``None``, the default policy is restored.
|
If *policy* is set to ``None``, the default policy is restored.
|
||||||
|
|
||||||
|
|
||||||
|
.. _asyncio-policy-objects:
|
||||||
|
|
||||||
Policy Objects
|
Policy Objects
|
||||||
==============
|
==============
|
||||||
|
|
||||||
|
@ -86,6 +95,8 @@ The abstract event loop policy base class is defined as follows:
|
||||||
This function is Unix specific.
|
This function is Unix specific.
|
||||||
|
|
||||||
|
|
||||||
|
.. _asyncio-policy-builtin:
|
||||||
|
|
||||||
asyncio ships with the following built-in policies:
|
asyncio ships with the following built-in policies:
|
||||||
|
|
||||||
|
|
||||||
|
@ -117,6 +128,7 @@ asyncio ships with the following built-in policies:
|
||||||
|
|
||||||
.. availability:: Windows.
|
.. availability:: Windows.
|
||||||
|
|
||||||
|
|
||||||
.. _asyncio-watchers:
|
.. _asyncio-watchers:
|
||||||
|
|
||||||
Process Watchers
|
Process Watchers
|
||||||
|
@ -270,6 +282,8 @@ implementation used by the asyncio event loop:
|
||||||
.. versionadded:: 3.9
|
.. versionadded:: 3.9
|
||||||
|
|
||||||
|
|
||||||
|
.. _asyncio-custom-policies:
|
||||||
|
|
||||||
Custom Policies
|
Custom Policies
|
||||||
===============
|
===============
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue