Function sleep
pub fn sleep(duration: Duration) -> Sleep ⓘ
time only.Waits until duration has elapsed.
Equivalent to sleep_until(Instant::now() + duration). An asynchronous analog to std::thread::sleep.
No work is performed while awaiting on the sleep future to complete. Sleep operates at millisecond granularity and should not be used for tasks that require high-resolution timers. The implementation is platform specific, and some platforms (specifically Windows) will provide timers with a larger resolution than 1 ms.
To run something regularly on a schedule, see interval.
Cancellation
Canceling a sleep instance is done by dropping the returned future. No additional cleanup work is required.
Examples
Wait 100ms and print “100 ms have elapsed”.
use tokio::time::{sleep, Duration};
sleep(Duration::from_millis(100)).await;
println!("100 ms have elapsed");See the documentation for the Sleep type for more examples.
Panics
This function panics if there is no current timer set.
It can be triggered when Builder::enable_time or Builder::enable_all are not included in the builder.
It can also panic whenever a timer is created outside of a Tokio runtime. That is why rt.block_on(sleep(...)) will panic, since the function is executed outside of the runtime. Whereas rt.block_on(async {sleep(...).await}) doesn’t panic. And this is because wrapping the function on an async makes it lazy, and so gets executed inside the runtime successfully without panicking.
MIT License
Copyright © Tokio Contributors
https://docs.rs/tokio/1.53.1/tokio/time/fn.sleep.html