Function std::thread::sleep
pub fn sleep(dur: Duration)
Puts the current thread to sleep for at least the specified amount of time.
The thread may sleep longer than the duration specified due to scheduling specifics or platform-dependent functionality. It will never sleep less.
This function is blocking, and should not be used in async
functions.
Platform-specific behavior
On Unix platforms, the underlying syscall may be interrupted by a spurious wakeup or signal handler. To ensure the sleep occurs for at least the specified duration, this function may invoke that system call multiple times. Platforms which do not support nanosecond precision for sleeping will have dur
rounded up to the nearest granularity of time they can sleep for.
Currently, specifying a zero duration on Unix platforms returns immediately without invoking the underlying nanosleep
syscall, whereas on Windows platforms the underlying Sleep
syscall is always invoked. If the intention is to yield the current time-slice you may want to use yield_now
instead.
Examples
use std::{thread, time}; let ten_millis = time::Duration::from_millis(10); let now = time::Instant::now(); thread::sleep(ten_millis); assert!(now.elapsed() >= ten_millis);
© 2010 The Rust Project Developers
Licensed under the Apache License, Version 2.0 or the MIT license, at your option.
https://doc.rust-lang.org/std/thread/fn.sleep.html