diff options
author | Guido van Rossum <guido@python.org> | 2014-03-31 10:29:24 -0700 |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 2014-03-31 10:29:24 -0700 |
commit | 4b0dc955ee1a69ed468b11a2fb00cf2ca6fb4448 (patch) | |
tree | 8c1b57ac21ce5b26eaeb04f57f8c4daf378da0b7 /asyncio/tasks.py | |
parent | f2c8bfecbcf5b0ba08c50e3f83c0b3f55c51a512 (diff) | |
download | trollius-4b0dc955ee1a69ed468b11a2fb00cf2ca6fb4448.tar.gz |
Document Task.cancel() properly.
Diffstat (limited to 'asyncio/tasks.py')
-rw-r--r-- | asyncio/tasks.py | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/asyncio/tasks.py b/asyncio/tasks.py index 0967e7e..a84ad26 100644 --- a/asyncio/tasks.py +++ b/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 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: |