[−][src]Struct futures_timer::Timer
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 aTimer
advance_to
is what actually fires timers on theTimer
, and should be called essentially every iteration of the event loop, or when the time specified bynext_wake
has elapsed.- The
Future
implementation forTimer
is used to process incoming timer updates and requests. This is used to schedule new timeouts, update existing ones, or delete existing timeouts. TheFuture
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]
ⓘImportant traits for Timerpub fn new() -> Timer
[src]
Creates a new timer heap ready to create new timers.
pub fn handle(&self) -> TimerHandle
[src]
Returns a handle to this timer heap, used to create new timeouts.
pub fn next_event(&self) -> Option<Instant>
[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.
pub fn advance(&mut self)
[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())
.
pub fn advance_to(&mut self, now: Instant)
[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
Auto Trait Implementations
impl Unpin for Timer
impl Sync for Timer
impl Send for Timer
impl !UnwindSafe for Timer
impl !RefUnwindSafe for Timer
Blanket Implementations
impl<T> From<T> for T
[src]
impl<T, U> Into<U> for T where
U: From<T>,
[src]
U: From<T>,
impl<T, U> TryFrom<U> for T where
U: Into<T>,
[src]
U: Into<T>,
type Error = Infallible
The type returned in the event of a conversion error.
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
[src]
impl<T, U> TryInto<U> for T where
U: TryFrom<T>,
[src]
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
The type returned in the event of a conversion error.
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
[src]
impl<T> Borrow<T> for T where
T: ?Sized,
[src]
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
[src]
T: ?Sized,
fn borrow_mut(&mut self) -> &mut T
[src]
impl<T> Any for T where
T: 'static + ?Sized,
[src]
T: 'static + ?Sized,
impl<T> FutureExt for T where
T: Future + ?Sized,
[src]
T: Future + ?Sized,
fn map<U, F>(self, f: F) -> Map<Self, F> where
F: FnOnce(Self::Output) -> U,
[src]
F: FnOnce(Self::Output) -> U,
Map this future's output to a different type, returning a new future of the resulting type. Read more
fn then<Fut, F>(self, f: F) -> Then<Self, Fut, F> where
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
[src]
F: FnOnce(Self::Output) -> Fut,
Fut: Future,
Chain on a computation for when a future finished, passing the result of the future to the provided closure f
. Read more
fn left_future<B>(self) -> Either<Self, B> where
B: Future<Output = Self::Output>,
[src]
B: Future<Output = Self::Output>,
Wrap this future in an Either
future, making it the left-hand variant of that Either
. Read more
fn right_future<A>(self) -> Either<A, Self> where
A: Future<Output = Self::Output>,
[src]
A: Future<Output = Self::Output>,
Wrap this future in an Either
future, making it the right-hand variant of that Either
. Read more
fn into_stream(self) -> IntoStream<Self>
[src]
Convert this future into a single element stream. Read more
fn flatten(self) -> Flatten<Self> where
Self::Output: Future,
[src]
Self::Output: Future,
Flatten the execution of this future when the successful result of this future is itself another future. Read more
fn flatten_stream(self) -> FlattenStream<Self> where
Self::Output: Stream,
[src]
Self::Output: Stream,
Flatten the execution of this future when the successful result of this future is a stream. Read more
fn fuse(self) -> Fuse<Self>
[src]
Fuse a future such that poll
will never again be called once it has completed. This method can be used to turn any Future
into a FusedFuture
. Read more
fn inspect<F>(self, f: F) -> Inspect<Self, F> where
F: FnOnce(&Self::Output),
[src]
F: FnOnce(&Self::Output),
Do something with the output of a future before passing it on. Read more
fn catch_unwind(self) -> CatchUnwind<Self> where
Self: UnwindSafe,
[src]
Self: UnwindSafe,
Catches unwinding panics while polling the future. Read more
fn shared(self) -> Shared<Self> where
Self::Output: Clone,
[src]
Self::Output: Clone,
Create a cloneable handle to this future where all handles will resolve to the same result. Read more
fn remote_handle(self) -> (Remote<Self>, RemoteHandle<Self::Output>)
[src]
Turn this future into a future that yields ()
on completion and sends its output to another future on a separate task. Read more
fn boxed<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a + Send>> where
Self: Send + 'a,
[src]
Self: Send + 'a,
Wrap the future in a Box, pinning it.
fn boxed_local<'a>(self) -> Pin<Box<dyn Future<Output = Self::Output> + 'a>> where
Self: 'a,
[src]
Self: 'a,
Wrap the future in a Box, pinning it. Read more
fn unit_error(self) -> UnitError<Self>
[src]
Turns a Future<Output = T>
into a TryFuture<Ok = T, Error = ()
>. Read more
fn never_error(self) -> NeverError<Self>
[src]
Turns a Future<Output = T>
into a TryFuture<Ok = T, Error = Never
>. Read more
fn poll_unpin(&mut self, cx: &mut Context) -> Poll<Self::Output> where
Self: Unpin,
[src]
Self: Unpin,
A convenience for calling Future::poll
on Unpin
future types.