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

pub struct WaitTimeoutResult(_);

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.

Returns true if the wait was known to have timed out.

This example spawns a thread which will update the boolean value and then wait 100 milliseconds before notifying the condvar.

The main thread will wait with a timeout on the condvar and then leave once the boolean has been updated and notified.

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;
let mut started = lock.lock().unwrap();
loop {
    // Let's put a timeout on the condvar's wait.
    let result = cvar.wait_timeout(started, Duration::from_millis(10)).unwrap();
    // 10 milliseconds have passed, or maybe the value changed!
    started = result.0;
    if *started == true {
        // We received the notification and the value has been updated, we can leave.
        break
    }
}

Run

Formats the value using the given formatter. Read more

This method tests for self and other values to be equal, and is used by ==. Read more

This method tests for !=.

impl Any for T where

T: 'static + ?Sized,

Immutably borrows from an owned value. Read more

Mutably borrows from an owned value. Read more

impl From for T

impl<T, U> Into for T where

U: From,

The resulting type after obtaining ownership.

Creates owned data from borrowed data, usually by cloning. Read more

🔬 This is a nightly-only experimental API. (toowned_clone_into #41263)

Uses borrowed data to replace owned data, usually by cloning. Read more

The type returned in the event of a conversion error.

Performs the conversion.

The type returned in the event of a conversion error.

Performs the conversion.