pub struct Timer<T> { /* private fields */ }Expand description
A timer.
Typical usage goes like this:
- register the timer with a
mio::Poll. - set a timeout, by calling
Timer::set_timeout. Here you provide some state to be associated with this timeout. - poll the
Poll, to learn when a timeout has occurred. - retrieve state associated with the timeout by calling
Timer::poll.
You can omit use of the Poll altogether, if you like, and just poll the
Timer directly.
Implementations§
Source§impl<T> Timer<T>
impl<T> Timer<T>
Sourcepub fn set_timeout(&mut self, delay_from_now: Duration, state: T) -> Timeout
pub fn set_timeout(&mut self, delay_from_now: Duration, state: T) -> Timeout
Set a timeout.
When the timeout occurs, the given state becomes available via poll.
Sourcepub fn set_timeout_from(
&mut self,
now: Instant,
delay_from_now: Duration,
state: T,
) -> Timeout
pub fn set_timeout_from( &mut self, now: Instant, delay_from_now: Duration, state: T, ) -> Timeout
Self::set_timeout, counting delay_from_now from the caller’s
now instead of re-reading the clock.
A caller that already holds the instant its deadline was computed
against uses this so the entry lands on the grid point that deadline
maps to, however long ago now was read — and a test can place an
entry at an exact instant.
Sourcepub fn reset_timeout(
&mut self,
timeout: &Timeout,
delay_from_now: Duration,
) -> Option<Timeout>
pub fn reset_timeout( &mut self, timeout: &Timeout, delay_from_now: Duration, ) -> Option<Timeout>
Resets a timeout.
Sourcepub fn cancel_timeout(&mut self, timeout: &Timeout) -> Option<T>
pub fn cancel_timeout(&mut self, timeout: &Timeout) -> Option<T>
Cancel a timeout.
If the timeout has not yet occurred, the return value holds the associated state.
Sourcepub fn poll(&mut self) -> Option<T>
pub fn poll(&mut self) -> Option<T>
Poll for an expired timer.
The return value holds the state associated with the first expired timer, if any.
Sourcepub fn poll_at(&mut self, now: Instant) -> Option<T>
pub fn poll_at(&mut self, now: Instant) -> Option<T>
Self::poll as of now rather than the current instant, so a test
can drive the wheel from a simulated clock.