Struct WaitTimeoutResult

struct WaitTimeoutResult(_)

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

fn timed_out(self: &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);

# let handle =
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
    }
}
# // Prevent leaks for Miri.
# let _ = handle.join();

impl Clone for WaitTimeoutResult

fn clone(self: &Self) -> WaitTimeoutResult

impl Copy for WaitTimeoutResult

impl Debug for WaitTimeoutResult

fn fmt(self: &Self, f: &mut $crate::fmt::Formatter<'_>) -> $crate::fmt::Result

impl Eq for WaitTimeoutResult

impl Freeze for WaitTimeoutResult

impl PartialEq for WaitTimeoutResult

fn eq(self: &Self, other: &WaitTimeoutResult) -> bool

impl RefUnwindSafe for WaitTimeoutResult

impl Send for WaitTimeoutResult

impl StructuralPartialEq for WaitTimeoutResult

impl Sync for WaitTimeoutResult

impl Unpin for WaitTimeoutResult

impl UnwindSafe for WaitTimeoutResult

impl<T> Any for WaitTimeoutResult

fn type_id(self: &Self) -> TypeId

impl<T> Borrow for WaitTimeoutResult

fn borrow(self: &Self) -> &T

impl<T> BorrowMut for WaitTimeoutResult

fn borrow_mut(self: &mut Self) -> &mut T

impl<T> CloneToUninit for WaitTimeoutResult

unsafe fn clone_to_uninit(self: &Self, dest: *mut u8)

impl<T> From for WaitTimeoutResult

fn from(t: T) -> T

Returns the argument unchanged.

impl<T> ToOwned for WaitTimeoutResult

fn to_owned(self: &Self) -> T
fn clone_into(self: &Self, target: &mut T)

impl<T, U> Into for WaitTimeoutResult

fn into(self: Self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of [From]<T> for U chooses to do.

impl<T, U> TryFrom for WaitTimeoutResult

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

impl<T, U> TryInto for WaitTimeoutResult

fn try_into(self: Self) -> Result<U, <U as TryFrom<T>>::Error>