# 1.5.0[−][src]Struct std::sync::WaitTimeoutResult

    pub 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`[src]

#### `pub fn timed_out(&self) -> bool`[src]

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

# Examples

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 = pair.clone();

    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

## Trait Implementations

### `impl Clone for WaitTimeoutResult`[src]

#### `fn clone(&self) -> WaitTimeoutResult`[src]

Returns a copy of the value. Read more

#### `fn clone_from(&mut self, source: &Self)`1.0.0[src]

Performs copy-assignment from `source`. Read more

### `impl Copy for WaitTimeoutResult`[src]

### `impl Debug for WaitTimeoutResult`[src]

#### `fn fmt(&self, f: &mut Formatter<'_>) -> Result`[src]

Formats the value using the given formatter. Read more

### `impl Eq for WaitTimeoutResult`[src]

### `impl PartialEq<WaitTimeoutResult> for WaitTimeoutResult`[src]

#### `fn eq(&self, other: &WaitTimeoutResult) -> bool`[src]

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

#### `fn ne(&self, other: &WaitTimeoutResult) -> bool`[src]

This method tests for `!=`.

### `impl StructuralEq for WaitTimeoutResult`[src]

### `impl StructuralPartialEq for WaitTimeoutResult`[src]

## 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,` [src]

#### `fn type_id(&self) -> TypeId`[src]

Gets the `TypeId` of `self`. Read more

### `impl<T> Borrow<T> for T where
T: ?Sized,` [src]

#### `fn borrow(&self) -> &Tⓘ

### Notable traits for &'_ mut F

`impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<R: Read + ?Sized, '_> Read for &'_ mut Rimpl<W: Write + ?Sized, '_> Write for &'_ mut W`
`[src]

Immutably borrows from an owned value. Read more

### `impl<T> BorrowMut<T> for T where
T: ?Sized,` [src]

#### `fn borrow_mut(&mut self) -> &mut Tⓘ

### Notable traits for &'_ mut F

`impl<'_, F> Future for &'_ mut F where
F: Unpin + Future + ?Sized, type Output = <F as Future>::Output;impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<R: Read + ?Sized, '_> Read for &'_ mut Rimpl<W: Write + ?Sized, '_> Write for &'_ mut W`
`[src]

Mutably borrows from an owned value. Read more

### `impl<T> From<T> for T`[src]

#### `fn from(t: T) -> T`[src]

Performs the conversion.

### `impl<T, U> Into<U> for T where
U: From<T>,` [src]

#### `fn into(self) -> U`[src]

Performs the conversion.

### `impl<T> ToOwned for T where
T: Clone,` [src]

#### `type Owned = T`

The resulting type after obtaining ownership.

#### `fn to_owned(&self) -> T`[src]

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

#### `fn clone_into(&self, target: &mut T)`[src]

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

recently added

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

### `impl<T, U> TryFrom<U> for T where
U: Into<T>,` [src]

#### `type Error = Infallible`

The type returned in the event of a conversion error.

#### `fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>`[src]

Performs the conversion.

### `impl<T, U> TryInto<U> for T where
U: TryFrom<T>,` [src]

#### `type Error = <U as TryFrom<T>>::Error`

The type returned in the event of a conversion error.

#### `fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>`[src]

Performs the conversion.