summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVictor Stinner <victor.stinner@gmail.com>2014-04-07 09:18:06 (GMT)
committerVictor Stinner <victor.stinner@gmail.com>2014-04-07 09:18:06 (GMT)
commit4bd652a276c575de476d634da8cc4f95815721e9 (patch)
tree797d279d672c84bc2840d2db6fd75ddd3d5e0316
parent6d6ec25e043230a8b97b2773f4b50c1495393b0d (diff)
downloadcpython-4bd652a276c575de476d634da8cc4f95815721e9.zip
cpython-4bd652a276c575de476d634da8cc4f95815721e9.tar.gz
cpython-4bd652a276c575de476d634da8cc4f95815721e9.tar.bz2
asyncio: Document Task.cancel() properly.
-rw-r--r--Lib/asyncio/tasks.py19
1 files changed, 19 insertions, 0 deletions
diff --git a/Lib/asyncio/tasks.py b/Lib/asyncio/tasks.py
index 0967e7e..153f731 100644
--- a/Lib/asyncio/tasks.py
+++ b/Lib/asyncio/tasks.py
@@ -250,6 +250,25 @@ class Task(futures.Future):
print(line, file=file, end='')
def cancel(self):
+ """Request that a task to cancel itself.
+
+ This arranges for a CancellationError to be thrown into the
+ wrapped coroutine on the next cycle through the event loop.
+ The coroutine then has a chance to clean up or even deny
+ the request using try/except/finally.
+
+ Contrary to Future.cancel(), this does not guarantee that the
+ task will be cancelled: the exception might be caught and
+ acted upon, delaying cancellation of the task or preventing it
+ completely. The task may also return a value or raise a
+ different exception.
+
+ Immediately after this method is called, Task.cancelled() will
+ not return True (unless the task was already cancelled). A
+ task will be marked as cancelled when the wrapped coroutine
+ terminates with a CancelledError exception (even if cancel()
+ was not called).
+ """
if self.done():
return False
if self._fut_waiter is not None: