Task.cancel

Request that this task cancel itself.

This arranges for a $(D_PSYMBOL CancelledException) 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/catch/finally.

Unlike $(D_PSYMBOL 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 cancellation completely. The task may also return a value or raise a different exception.

Immediately after this method is called, $(D_PSYMBOL cancelled()) will not return $(D_KEYWORD true) (unless the task was already cancelled). A task will be marked as cancelled when the wrapped coroutine terminates with a $(D_PSYMBOL CancelledException) (even if cancel() was not called).

class Task(Coroutine, Args...)
override
bool
cancel
()
if (
isDelegate!Coroutine
)

Meta