pub struct JobHandle { /* private fields */ }
Expand description
The handle that can be used to wait for a pool to finish
Implementations§
Source§impl JobHandle
impl JobHandle
Sourcepub fn join(self) -> Result<()>
pub fn join(self) -> Result<()>
Waits for a specific pool to finish its work.
This can be used if you need to create another pool, but only after a previous pool finishes its work.
This method returns a thread::Result
. Since the Err
variant of this specialized
Result
does not implement the Error
trait, the ?
-operator does
not work here. For more information about how to handle panics in this case, please refer
to the documentation of thread::Result
.
§Example:
let pool_builder = SharedResourcePoolBuilder::new(Vec::new(), |v, i| v.push(i));
// It is crucial that all additions finish their work, hence the `join`.
pool_builder.create_pool(
|tx| (0..10).for_each(|i| tx.send(i).unwrap()),
|i| i + 3,
).join().unwrap();
// Now we are safe to run the multiplications.
pool_builder.create_pool(
|tx| (0..10).for_each(|i| tx.send(i).unwrap()),
|i| i * 2,
);
let result = pool_builder.join().unwrap();
Auto Trait Implementations§
impl Freeze for JobHandle
impl !RefUnwindSafe for JobHandle
impl Send for JobHandle
impl Sync for JobHandle
impl Unpin for JobHandle
impl !UnwindSafe for JobHandle
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