Build status Latest version All downloads Downloads of latest version Documentation

poolite

A lite threadpool library written for Rust.

Usage

On Cargo.toml:

toml [dependencies] poolite = "0.7.0"

Documentation

or

Base usage

```rust extern crate poolite; use poolite::Pool;

fn main() { let pool = Pool::new().run().unwrap(); for i in 0..38 { pool.push(move || test(i)); }

pool.join(); //wait for the pool

}

fn test(msg: i32) { println!("key: {}\tvalue: {}", msg, fib(msg)); }

fn fib(msg: i32) -> i32 { match msg { 0...2 => 1, x => fib(x - 1) + fib(x - 2), } } ```

Scoped task

```rust extern crate poolite; use poolite::Pool;

fn main() { let pool = Pool::new().run().unwrap(); let mut array = (0..100usize).into_iter().map(|i| (i, 0)).collect::>();

// scoped method will waiting scoped's task running finish.
pool.scoped(|scope| for i in array.iter_mut() {
    // have to move
    scope.push(move|| i.1 = i.0*i.0);
});

for (i, j) in array {
    println!("key: {}\tvalue: {}", i, j);
}

} ```

More Examples