]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
gh-141186: document `asyncio.Task` cancellation propagation behavior (#141249)
authorMohsin Mehmood <55545648+mohsinm-dev@users.noreply.github.com>
Sun, 9 Nov 2025 04:49:29 +0000 (09:49 +0500)
committerGitHub <noreply@github.com>
Sun, 9 Nov 2025 04:49:29 +0000 (10:19 +0530)
Doc/library/asyncio-task.rst

index f825ae92ec74712b92a3fa385b68e0000f36d153..863b3e336572aa53a5c62eadfdf55fdd17e23cc4 100644 (file)
@@ -1221,8 +1221,8 @@ Task Object
 
    To cancel a running Task use the :meth:`cancel` method.  Calling it
    will cause the Task to throw a :exc:`CancelledError` exception into
-   the wrapped coroutine.  If a coroutine is awaiting on a Future
-   object during cancellation, the Future object will be cancelled.
+   the wrapped coroutine.  If a coroutine is awaiting on a future-like
+   object during cancellation, the awaited object will be cancelled.
 
    :meth:`cancelled` can be used to check if the Task was cancelled.
    The method returns ``True`` if the wrapped coroutine did not
@@ -1411,6 +1411,10 @@ Task Object
       the cancellation, it needs to call :meth:`Task.uncancel` in addition
       to catching the exception.
 
+      If the Task being cancelled is currently awaiting on a future-like
+      object, that awaited object will also be cancelled. This cancellation
+      propagates down the entire chain of awaited objects.
+
       .. versionchanged:: 3.9
          Added the *msg* parameter.