Struct std::sync::WaitTimeoutResult
1.5.0 · source · pub struct WaitTimeoutResult(_);
Expand description
指示是否因超时而返回的条件变量的定时等待的类型。
它由 wait_timeout
方法返回。
Implementations§
source§impl WaitTimeoutResult
impl WaitTimeoutResult
sourcepub fn timed_out(&self) -> bool
pub fn timed_out(&self) -> bool
如果已知等待超时,则返回 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
}
}
RunTrait Implementations§
source§impl Clone for WaitTimeoutResult
impl Clone for WaitTimeoutResult
source§fn clone(&self) -> WaitTimeoutResult
fn clone(&self) -> WaitTimeoutResult
返回值的副本。 Read more
1.0.0 · source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
从
source
执行复制分配。 Read moresource§impl Debug for WaitTimeoutResult
impl Debug for WaitTimeoutResult
impl Copy for WaitTimeoutResult
impl Eq for WaitTimeoutResult
impl StructuralEq for WaitTimeoutResult
impl StructuralPartialEq for WaitTimeoutResult
Auto Trait Implementations§
impl RefUnwindSafe for WaitTimeoutResult
impl Send for WaitTimeoutResult
impl Sync for WaitTimeoutResult
impl Unpin for WaitTimeoutResult
impl UnwindSafe for WaitTimeoutResult
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
从拥有的值中借用。 Read more