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).
Streambuffers into more manageable sizes.
YieldStreamfor yielding between
The following features may be enabled at build time. All are disabled by default, unless otherwise noted.
futures-channel : Use this oneshot channel implementation (Default enabled, but overridden by tokio-oneshot or tokio-omnibus.)
tokio-oneshot : Use tokio's oneshot channel implementation (Overrides futures-channel default.).
BlockingPermit and re-export
Semaphore from the
futures-intrusive crate. (Works with all prominent runtimes.)
BlockingPermit and re-export tokio's
type. (Overrides futures-intrusive.)
block_in_place support, exposed via
tokio-omnibus : A simpler way to include all above and, we expect, any future added tokio-* features in this crate.
: Include the
Cleaver wrapper stream.
: Include the
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
Trait for buffer types that may be split at a maximum length.
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.