/blocking-permit

A pool and permits for limiting the number of concurrent blocking operations

Primary LanguageRustApache License 2.0Apache-2.0

blocking-permit

Rustdoc Change Log crates.io CI Status

This crate provides:

  • A specialized, custom thread pool, DispatchPool, for offloading blocking or otherwise long running operations from a main or reactor threads.

  • A BlockingPermit for limiting the number of concurrent blocking operations via a Semaphore type.

  • A Cleaver for splitting Stream buffers into more manageable sizes.

  • A YieldStream for yielding between Stream items.

Minimum supported rust version

MSRV := 1.45.2

The crate will fail fast on any lower rustc (via a build.rs version check) and is also CI tested on this version.

License

This project is dual licensed under either of following:

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in blocking-permit by you, as defined by the Apache License, shall be dual licensed as above, without any additional terms or conditions.