This crate provides:
A specialized, custom thread pool,
DispatchPool, for offloading blocking or otherwise long running operations from a main or reactor thread(s). Once registered, it is used via
dispatch_rx()(to await a return value) or
dispatch()for background tasks (fire and forget).
BlockingPermit, obtained via
blocking_permit_future()for limiting the number of concurrent blocking operations via a re-exported
Semaphoretype selected by one of the (non-default) features futures-intrusive, or tokio-semaphore (or tokio-omnibus).
Attempt to dispatch a blocking operation, or otherwise obtain a permit and run on thread, returning the result of the closure.
A scoped permit for blocking operations. When dropped (out of scope or manually), the permit is released.
A future which resolves to a
A specialized thread pool and queue for dispatching blocking (synchronous, long running) operations.
A builder for
A future type created by
Value returned by
Extension trait for uniform construction of the re-exported
Request a permit to perform a blocking operation on the current thread.
Deregister and return any
Dispatch a blocking operation closure to a pool, if registered.
Dispatch a blocking operation closure to a registered pool, returning a future for awaiting the result.
Return true if a DispatchPool is registered to the current thread.
An async-aware semaphore for constraining the number of concurrent blocking operations.