2 unstable releases
0.1.0 | Feb 10, 2019 |
---|---|
0.0.0 | Feb 6, 2019 |
#1157 in Concurrency
Used in raytracer
13KB
154 lines
ice-threads
ice-threads is a lightweight Thread Pool (Melter) implementation.
User can enqueue Tasks (Ice) to be executed.
Optionally, user can return a value that can be collected through a special handle (Bottle) that is returned by the thread pool task enqueuing method.
Tasks are put into the queue and eventually picked up by a task stealing thread (Heater) and executed.
Usage
Put this in your Cargo.toml
:
[dependencies]
ice-threads = "0.1"
Start melting your tasks:
use ice_threads::Melter;
fn main() {
let melter = Melter::new(1);
let s = melter.melt(|| {
"Watch this task melt away!"
}).open();
println!("{}", s);
}
Features
- Very simple to use.
- Very light crate with no dependencies.
Changelog
v0.1.0
- Introduced
Melter
type (Thread Pool) - Introduced
Bottle
type ("Future")