bpo-37703: improve asyncio.gather documentation regarding cancellation (GH-15312)
These changes updates the doc to comprehensively mention the behaviour of gather.cancel()
Automerge-Triggered-By: @asvetlov
(cherry picked from commit d42528a3a2
)
Co-authored-by: Vinay Sharma <vinay04sharma@icloud.com>
This commit is contained in:
parent
892fc8d328
commit
58f59a9621
|
@ -385,6 +385,14 @@ Running Tasks Concurrently
|
||||||
# Task C: Compute factorial(4)...
|
# Task C: Compute factorial(4)...
|
||||||
# Task C: factorial(4) = 24
|
# Task C: factorial(4) = 24
|
||||||
|
|
||||||
|
.. note::
|
||||||
|
If *return_exceptions* is False, cancelling gather() after it
|
||||||
|
has been marked done won't cancel any submitted awaitables.
|
||||||
|
For instance, gather can be marked done after propagating an
|
||||||
|
exception to the caller, therefore, calling ``gather.cancel()``
|
||||||
|
after catching an exception (raised by one of the awaitables) from
|
||||||
|
gather won't cancel any other awaitables.
|
||||||
|
|
||||||
.. versionchanged:: 3.7
|
.. versionchanged:: 3.7
|
||||||
If the *gather* itself is cancelled, the cancellation is
|
If the *gather* itself is cancelled, the cancellation is
|
||||||
propagated regardless of *return_exceptions*.
|
propagated regardless of *return_exceptions*.
|
||||||
|
|
|
@ -736,6 +736,13 @@ def gather(*coros_or_futures, loop=None, return_exceptions=False):
|
||||||
the outer Future is *not* cancelled in this case. (This is to
|
the outer Future is *not* cancelled in this case. (This is to
|
||||||
prevent the cancellation of one child to cause other children to
|
prevent the cancellation of one child to cause other children to
|
||||||
be cancelled.)
|
be cancelled.)
|
||||||
|
|
||||||
|
If *return_exceptions* is False, cancelling gather() after it
|
||||||
|
has been marked done won't cancel any submitted awaitables.
|
||||||
|
For instance, gather can be marked done after propagating an
|
||||||
|
exception to the caller, therefore, calling ``gather.cancel()``
|
||||||
|
after catching an exception (raised by one of the awaitables) from
|
||||||
|
gather won't cancel any other awaitables.
|
||||||
"""
|
"""
|
||||||
if not coros_or_futures:
|
if not coros_or_futures:
|
||||||
if loop is None:
|
if loop is None:
|
||||||
|
|
|
@ -0,0 +1,2 @@
|
||||||
|
Updated Documentation to comprehensively elaborate on the behaviour of
|
||||||
|
gather.cancel()
|
Loading…
Reference in New Issue