Struct std::sync::WaitTimeoutResult 1.5.0[−][src]
pub struct WaitTimeoutResult(_);
Expand description
指示是否因超时而返回的条件变量的定时等待的类型。
它由 wait_timeout
方法返回。
Implementations
如果已知等待超时,则返回 true
。
Examples
本示例生成一个线程,该线程将更新布尔值,然后等待 100 毫秒再通知 condvar。
主线程将在 condvar 上等待超时,然后在布尔值已更新并通知后离开。
use std::sync::{Arc, Condvar, Mutex}; use std::thread; use std::time::Duration; let pair = Arc::new((Mutex::new(false), Condvar::new())); let pair2 = Arc::clone(&pair); thread::spawn(move || { let (lock, cvar) = &*pair2; // 让我们等待 20 毫秒,然后再通知 condvar。 thread::sleep(Duration::from_millis(20)); let mut started = lock.lock().unwrap(); // 我们更新布尔值。 *started = true; cvar.notify_one(); }); // 等待线程启动。 let (lock, cvar) = &*pair; let mut started = lock.lock().unwrap(); loop { // 让我们在 condvar 的等待上设置超时。 let result = cvar.wait_timeout(started, Duration::from_millis(10)).unwrap(); // 10 毫秒已过去,或者值已更改! started = result.0; if *started == true { // 我们已收到通知,并且值已更新,我们可以离开。 break } }Run