logo

Struct std::sync::WaitTimeoutResult

1.5.0 · source ·
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.

Implementations

source

impl WaitTimeoutResult

source

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

Trait Implementations

source

impl Clone for WaitTimeoutResult

source

fn clone(&self) -> WaitTimeoutResult

Returns a copy of the value. Read more

1.0.0 · source

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

source

impl Debug for WaitTimeoutResult

source

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

Formats the value using the given formatter. Read more

source

impl PartialEq<WaitTimeoutResult> for WaitTimeoutResult

source

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

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

source

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

This method tests for !=.

source

impl Copy for WaitTimeoutResult

source

impl Eq for WaitTimeoutResult

source

impl StructuralEq for WaitTimeoutResult

source

impl StructuralPartialEq for WaitTimeoutResult

Auto Trait Implementations

Blanket Implementations

source

impl<T> Any for T where
T: 'static + ?Sized,

source

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more

source

impl<T> Borrow<T> for T where
T: ?Sized,

const: unstable · source

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more

source

impl<T> BorrowMut<T> for T where
T: ?Sized,

const: unstable · source

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

Mutably borrows from an owned value. Read more

source

impl<T> From<T> for T

const: unstable · source

fn from(t: T) -> T

Returns the argument unchanged.

source

impl<T, U> Into<U> for T where
U: From<T>,

const: unstable · source

fn into(self) -> U

Calls U::from(self).

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

source

impl<T> ToOwned for T where
T: Clone,

type Owned = T

The resulting type after obtaining ownership.

source

fn to_owned(&self) -> T

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

source

fn clone_into(&self, target: &mut T)

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

source

impl<T, U> TryFrom<U> for T where
U: Into<T>,

type Error = Infallible

The type returned in the event of a conversion error.

const: unstable · source

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

Performs the conversion.

source

impl<T, U> TryInto<U> for T where
U: TryFrom<T>,

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

The type returned in the event of a conversion error.

const: unstable · source

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

Performs the conversion.

AltStyle によって変換されたページ (->オリジナル) /