Handle returned by ThreadPool::evaluate and ThreadPool::complete
that allows to block the current thread and wait for the result of a submitted task. The returned JoinHandle may also be sent to the ThreadPool
to create a task that blocks a worker thread until the task is completed and then does something with the result. This handle communicates with the worker thread
using a oneshot channel blocking the thread when try_await_complete() is called until a message, i.e. the result of the
task, is received.
Self growing / shrinking ThreadPool implementation based on crossbeam’s
multi-producer multi-consumer channels that enables awaiting the result of a
task and offers async support.
The absolute maximum number of workers. This corresponds to the maximum value that can be stored within half the bits of usize,
as two counters (total workers and idle workers) are stored in one AtomicUsize.