WaitTimeoutResult in std::sync - Rust (original) (raw)

Struct WaitTimeoutResult

1.0.0 · Source

pub struct WaitTimeoutResult(/* private fields */);

Expand description

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.

Source§

1.5.0 · Source

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
    }
}

1.5.0 · Source§

1.5.0 · Source§

1.5.0 · Source§

Source§

Tests for self and other values to be equal, and is used by ==.

1.0.0 · Source§

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.

1.5.0 · Source§

1.5.0 · Source§

1.5.0 · Source§

§

§

§

§

§

§