Crate poolite

Crate poolite 

Source
Expand description

§poolite

A lite threadpool library written for Rust.

§Usage

On Cargo.toml:

 [dependencies]
 poolite = "0.7.1"

§Documentation

or

  • Run cargo doc --open after modified the toml file.

§Base usage

extern crate poolite;
use poolite::Pool;

fn main() {
    let pool = Pool::new().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

extern crate poolite;
use poolite::Pool;

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

    // 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..

Structs§

Builder
Pool’s Settings
Pool
The Pool struct
PoolError
The error type for the pool’s run() if the pool spawning the daemon thread fails.
Scoped
Scoped impl

Traits§

Runable
The Runable trait for FnOnce()

Type Aliases§

Task
The Task Box