Struct threadpool_executor::Expectation
source · pub struct Expectation<T> { /* private fields */ }
Implementations§
source§impl<T> Expectation<T>where
T: Send + 'static,
impl<T> Expectation<T>where T: Send + 'static,
sourcepub fn get_result(&mut self) -> Result<T, ExecutorError>
pub fn get_result(&mut self) -> Result<T, ExecutorError>
This method returns a Result
which will return the return value of your
closure when Ok
, and Err
will be returned when your closure panic
.
Example
let pool = threadpool_executor::ThreadPool::new(1);
let exp = pool.execute(|| 1 + 2);
assert_eq!(exp.unwrap().get_result().unwrap(), 3);
When panic
:
let pool = threadpool_executor::ThreadPool::new(1);
let exp = pool.execute(|| {
panic!("panic!!!");
});
let res = exp.unwrap().get_result();
assert!(res.is_err());
if let Err(err) = res {
matches!(err.kind(), threadpool_executor::error::ErrorKind::Panic);
}
sourcepub fn get_result_timeout(
&mut self,
timeout: Duration
) -> Result<T, ExecutorError>
pub fn get_result_timeout( &mut self, timeout: Duration ) -> Result<T, ExecutorError>
This method returns a Result
which will return the return value of your
closure when Ok
, and Err
will be returned when your closure panic
or
timeout
.
Example
let pool = threadpool_executor::ThreadPool::new(1);
let exp = pool.execute(|| 1 + 2);
assert_eq!(exp.unwrap().get_result_timeout(std::time::Duration::from_secs(1)).unwrap(), 3);
When timeout
:
use std::time::Duration;
let pool = threadpool_executor::ThreadPool::new(1);
let exp = pool.execute(|| {
std::thread::sleep(Duration::from_secs(3));
});
let res = exp.unwrap().get_result_timeout(Duration::from_secs(1));
assert!(res.is_err());
if let Err(err) = res {
matches!(err.kind(), threadpool_executor::error::ErrorKind::TimeOut);
}
Trait Implementations§
Auto Trait Implementations§
impl<T> RefUnwindSafe for Expectation<T>
impl<T> Send for Expectation<T>where T: Send,
impl<T> Sync for Expectation<T>where T: Send,
impl<T> Unpin for Expectation<T>where T: Unpin,
impl<T> UnwindSafe for Expectation<T>
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more