Struct shared_resource_pool_builder::JobHandle [−][src]
pub struct JobHandle { /* fields omitted */ }
Expand description
The handle that can be used to wait for a pool to finish
Implementations
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();