Struct futures_timer::Timer [] [src]

pub struct Timer { /* fields omitted */ }

A "timer heap" used to power separately owned instances of Delay and Interval.

This timer is implemented as a priority queued-based heap. Each Timer contains a few primary methods which which to drive it:

  • next_wake indicates how long the ambient system needs to sleep until it invokes further processing on a Timer
  • advance_to is what actually fires timers on the Timer, and should be called essentially every iteration of the event loop, or when the time specified by next_wake has elapsed.
  • The Future implementation for Timer is used to process incoming timer updates and requests. This is used to schedule new timeouts, update existing ones, or delete existing timeouts. The Future implementation will never resolve, but it'll schedule notifications of when to wake up and process more messages.

Note that if you're using this crate you probably don't need to use a Timer as there is a global one already available for you run on a helper thread. If this isn't desirable, though, then the TimerHandle::set_fallback method can be used instead!

Methods

impl Timer
[src]

[src]

Creates a new timer heap ready to create new timers.

[src]

Returns a handle to this timer heap, used to create new timeouts.

[src]

Returns the time at which this timer next needs to be invoked with advance_to.

Event loops or threads typically want to sleep until the specified instant.

[src]

Proces any timers which are supposed to fire at or before the current instant.

This method is equivalent to self.advance_to(Instant::now()).

[src]

Proces any timers which are supposed to fire before now specified.

This method should be called on Timer periodically to advance the internal state and process any pending timers which need to fire.

Trait Implementations

impl Future for Timer
[src]

The type of value that this future will resolved with if it is successful. Read more

The type of error that this future will resolve with if it fails in a normal fashion. Read more

[src]

Query this future to see if its value has become available, registering interest if it is not. Read more

[src]

Block the current thread until this future is resolved. Read more

[src]

Map this future's result to a different type, returning a new future of the resulting type. Read more

[src]

Map this future's error to a different error, returning a new future. Read more

[src]

Map this future's error to any error implementing From for this future's Error, returning a new future. Read more

[src]

Chain on a computation for when a future finished, passing the result of the future to the provided closure f. Read more

[src]

Execute another future after this one has resolved successfully. Read more

[src]

Execute another future if this one resolves with an error. Read more

[src]

Waits for either one of two futures to complete. Read more

[src]

Waits for either one of two differently-typed futures to complete. Read more

[src]

Joins the result of two futures, waiting for them both to complete. Read more

[src]

Same as join, but with more futures.

[src]

Same as join, but with more futures.

[src]

Same as join, but with more futures.

[src]

Convert this future into a single element stream. Read more

[src]

Flatten the execution of this future when the successful result of this future is itself another future. Read more

[src]

Flatten the execution of this future when the successful result of this future is a stream. Read more

[src]

Fuse a future such that poll will never again be called once it has completed. Read more

[src]

Do something with the item of a future, passing it on. Read more

[src]

Catches unwinding panics while polling the future. Read more

[src]

Create a cloneable handle to this future where all handles will resolve to the same result. Read more

impl Drop for Timer
[src]

[src]

Executes the destructor for this type. Read more