[−][src]Crate safina_threadpool
This is a safe Rust thread pool library.
It is part of safina, a safe async runtime.
Features
forbid(unsafe_code)- Depends only on
std - Good test coverage (100%)
Limitations
- Allocates memory
- Not optimized
Documentation
https://docs.rs/safina-threadpool
Examples
let pool = safina_threadpool::ThreadPool::new("worker", 2); let receiver = { let (sender, receiver) = std::sync::mpsc::channel(); for data in data_source { let sender_clone = sender.clone(); pool.schedule( move || process_data(data, sender_clone)); } receiver }; let results: Vec<ProcessResult> = receiver.iter().collect(); // ...
Alternatives
- blocking
- Popular
- A little
unsafecode
- threadpool
- Popular
- Well maintained
- Dependencies have
unsafecode
- futures-executor
- Very popular
- Full of
unsafe
- scoped_threadpool
- Popular
- Contains
unsafecode
- scheduled-thread-pool
- Used by a popular connection pool library
- Dependencies have
unsafecode
- workerpool
- Dependencies have
unsafecode
- Dependencies have
- threads_pool
- Full of
unsafe
- Full of
- thread-pool
- Old
- Dependencies have
unsafecode
- tasque
- Dependencies have
unsafecode
- Dependencies have
- fast-threadpool
- Dependencies have
unsafecode
- Dependencies have
- blocking-permit
- Full of
unsafe
- Full of
- rayon-core
- Full of
unsafe
- Full of
Changelog
- v0.1.0 - First release
TO DO
- DONE - Add
scheduleandtry_schedule - DONE - Add tests
- DONE - Add docs
- DONE - Publish on crates.io
- Add a stress test
- Add a benchmark. See benchmarks in https://crates.io/crates/executors
- Add a way for a job to schedule another job on the same thread, with stealing.
Release Process
- Edit
Cargo.tomland bump version number. - Run
./release.sh
Structs
| QueueFull | Returned by |
| ThreadPool | A collection of threads and a queue for jobs ( |