Crate async_timeouts

Source
Expand description

§Async Timeouts Helper

It is a simple instrument to delay execution of an async task with the possibility to stop timer or reset it with another time value.

It is convinient to use this crate with Notify or different channels (i.e. async_channel).

§Example

use std::time::Duration;
use async_timeout::Timeout;
use tokio::sync::Notify;
 
#[tokio::main]
async fn main() {
    let event = Arc::new(Notify::new());
    let timer = Instant::now();
    {
        let event = event.clone();
        // Let's notify our event after 3 seconds
        Timeout::set(Duration::from_secs(3), async move {
            event.notify_one();
        }).await;
    }
    event.notified().await;
    println!("{} seconds elapsed", timer.elapsed().as_secs());
}

Structs§

Timeout
See more information about reset and stop methods