Struct std::sync::WaitTimeoutResult 1.5.0[−][src]
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]
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 = 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
impl Clone for WaitTimeoutResult[src]
impl Clone for WaitTimeoutResult[src]fn clone(&self) -> WaitTimeoutResult[src]
pub fn clone_from(&mut self, source: &Self)1.0.0[src]
impl Copy for WaitTimeoutResult[src]
impl Copy for WaitTimeoutResult[src]impl Eq for WaitTimeoutResult[src]
impl Eq for WaitTimeoutResult[src]impl PartialEq<WaitTimeoutResult> for WaitTimeoutResult[src]
impl PartialEq<WaitTimeoutResult> for WaitTimeoutResult[src]fn eq(&self, other: &WaitTimeoutResult) -> bool[src]
fn ne(&self, other: &WaitTimeoutResult) -> bool[src]
impl StructuralEq for WaitTimeoutResult[src]
impl StructuralEq for WaitTimeoutResult[src]Auto Trait Implementations
impl RefUnwindSafe for WaitTimeoutResult
impl RefUnwindSafe for WaitTimeoutResultimpl Send for WaitTimeoutResult
impl Send for WaitTimeoutResultimpl Sync for WaitTimeoutResult
impl Sync for WaitTimeoutResultimpl Unpin for WaitTimeoutResult
impl Unpin for WaitTimeoutResultimpl UnwindSafe for WaitTimeoutResult
impl UnwindSafe for WaitTimeoutResultBlanket Implementations
impl<T> Borrow<T> for T where
T: ?Sized, [src]
impl<T> Borrow<T> for T where
T: ?Sized, [src]pub fn borrow(&self) -> &TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut Wimpl<T> BorrowMut<T> for T where
T: ?Sized, [src]
impl<T> BorrowMut<T> for T where
T: ?Sized, [src]pub fn borrow_mut(&mut self) -> &mut TⓘNotable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W[src]
Notable traits for &'_ mut I
impl<'_, I> Iterator for &'_ mut I where
I: Iterator + ?Sized, type Item = <I as Iterator>::Item;impl<'_, F> Future for &'_ mut F where
F: Future + Unpin + ?Sized, type Output = <F as Future>::Output;impl<R: Read + ?Sized> Read for &mut Rimpl<W: Write + ?Sized> Write for &mut W