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 is_cancelled(&self) -> bool
pub fn is_cancelled(&self) -> bool
Show whether the task is cancelled.
Sourcepub fn cancel(&mut self) -> Result<(), ExecutorError>
pub fn cancel(&mut self) -> Result<(), ExecutorError>
Cancel the task when the task is still waiting in line.
If the task is started running, Err
will be return.
If the task is already cancel, Err
will be return.
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> Freeze for Expectation<T>
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