On this page
Struct std::sync::WaitTimeoutResult
pub struct WaitTimeoutResult(/* private fields */);
A type indicating whether a timed wait on a condition variable returned due to a time out or not.
It is returned by the wait_timeout
method.
Implementations
impl WaitTimeoutResult
pub fn timed_out(&self) -> bool
Returns true
if the wait was known to have timed out.
Examples
This example spawns a thread which will sleep 20 milliseconds before updating a boolean value and then notifying the condvar.
The main thread will wait with a 10 millisecond timeout on the condvar and will leave the loop upon timeout.
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;
// Let's wait 20 milliseconds before notifying the condvar.
thread::sleep(Duration::from_millis(20));
let mut started = lock.lock().unwrap();
// We update the boolean value.
*started = true;
cvar.notify_one();
});
// Wait for the thread to start up.
let (lock, cvar) = &*pair;
loop {
// Let's put a timeout on the condvar's wait.
let result = cvar.wait_timeout(lock.lock().unwrap(), Duration::from_millis(10)).unwrap();
// 10 milliseconds have passed.
if result.1.timed_out() {
// timed out now and we can leave.
break
}
}
Trait Implementations
impl Clone for WaitTimeoutResult
fn clone(&self) -> WaitTimeoutResult
fn clone_from(&mut self, source: &Self)
source
. Read more
impl Debug for WaitTimeoutResult
fn fmt(&self, f: &mut Formatter<'_>) -> Result
impl PartialEq for WaitTimeoutResult
fn eq(&self, other: &WaitTimeoutResult) -> bool
self
and other
values to be equal, and is used by ==
.
fn ne(&self, other: &Rhs) -> bool
!=
. The default implementation is almost always sufficient, and should not be overridden without very good reason.
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
impl<T> Any for T
where
T: 'static + ?Sized,
impl<T> Borrow<T> for T
where
T: ?Sized,
impl<T> BorrowMut<T> for T
where
T: ?Sized,
impl<T> From<T> for T
fn from(t: T) -> T
Returns the argument unchanged.
impl<T, U> Into<U> for T
where
U: From<T>,
fn into(self) -> U
Calls U::from(self)
.
That is, this conversion is whatever the implementation of From<T> for U
chooses to do.
impl<T> ToOwned for T
where
T: Clone,
type Owned = T
fn to_owned(&self) -> T
fn clone_into(&self, target: &mut T)
impl<T, U> TryFrom<U> for T
where
U: Into<T>,
type Error = Infallible
fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>
impl<T, U> TryInto<U> for T
where
U: TryFrom<T>,
type Error = <U as TryFrom<T>>::Error
fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>
© 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/sync/struct.WaitTimeoutResult.html