Crate poolite [] [src]

poolite

A lite threadpool library written for Rust.

Usage

On Cargo.toml:

 [dependencies]
 poolite = "0.7.0"

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().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

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::<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 Definitions

Task

The Task Box