1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
use std::time::Duration;

use crate::future;
use crate::io;

/// Sleeps for the specified amount of time.

///

/// This function might sleep for slightly longer than the specified duration but never less.

///

/// This function is an async version of [`std::thread::sleep`].

///

/// [`std::thread::sleep`]: https://doc.rust-lang.org/std/thread/fn.sleep.html

///

/// See also: [`stream::interval`].

///

/// [`stream::interval`]: ../stream/fn.interval.html

///

/// # Examples

///

/// ```

/// # async_std::task::block_on(async {

/// #

/// use std::time::Duration;

///

/// use async_std::task;

///

/// task::sleep(Duration::from_secs(1)).await;

/// #

/// # })

/// ```

pub async fn sleep(dur: Duration) {
    let _: io::Result<()> = io::timeout(dur, future::pending()).await;
}