#### basic_waitable_timer::cancel_one

Cancels one asynchronous operation that is waiting on the timer.

    std::size_t cancel_one();

This function forces the completion of one pending asynchronous wait operation against the timer. Handlers are cancelled in FIFO order. The handler for the cancelled operation will be invoked with the `asio::error::operation_aborted` error code.

Cancelling the timer does not change the expiry time.

###### Return Value

The number of asynchronous operations that were cancelled. That is, either 0 or 1.

###### Exceptions

asio::system_error

  Thrown on failure.

###### Remarks

If the timer has already expired when `cancel_one()` is called, then the handlers for asynchronous wait operations will:

- have already been invoked; or
- have been queued for invocation in the near future.

These handlers can no longer be cancelled, and therefore are passed an error code that indicates the successful completion of the wait operation.