Struct cancellation::CancellationToken [] [src]

pub struct CancellationToken {
    // some fields omitted
}

A CancellationToken is used to query whether an operation should be canceled.

To cancel a token, use CancellationTokenSource.

Use CancellationTokenSource to obtain instances of CancellationToken.

Methods

impl CancellationToken

fn none() -> &'static CancellationToken

Returns a reference to a cancellation token that is never canceled.

fn is_canceled(&self) -> bool

Gets whether this token has been canceled.

This function is inherently racy: it may start returning true at any moment as the token is canceled by another thread.

However, once the function returns true, it will always keep returning true (cancellation tokens cannot be reset).

fn result(&self) -> Result<(), OperationCanceled>

Returns Ok(()) if this token has not been canceled. Returns Err(OperationCanceled) if this token has been canceled.

This is an alternative to is_canceled() that can be used with the try!() macro.

fn run<C, F, R>(&self, on_cancel: C, f: F) -> R where C: FnOnce() + Send, F: FnOnce() -> R

Runs function f on the current thread. If the token is canceled while f is running, the on_cancel function will be executed by the thread calling cancel().

If the f callback returns before the on_cancel callback does, run() waits for the on_cancel callback to finish before returning. Any memory writes performed by the on_cancel callback will be visible after run() returns.

If the token is already canceled when this function is called, on_cancel will be executed on the current thread before f is called.

If the token is not canceled during the execution of f, the on_cancel callback will not be called at all.

Panics in the f callback are supported: unwinding will wait for on_cancel to finish (if it is running concurrently) and unregister the on_cancel callback from the token.

Panics in the on_cancel callback may abort the process.

Trait Implementations

impl Sync for CancellationToken

impl Send for CancellationToken

impl Debug for CancellationToken

fn fmt(&self, f: &mut Formatter) -> Result<(), Error>