Crate task_queue [] [src]

Task queue The implementation of the thread pool for Rust Library supports dynamic control over the number of threads For implement it you should use SpawnPolicy trait

For example it StaticSpawnPolicy implementation: ``` rust pub struct StaticSpawnPolicy;

impl SpawnPolicy for StaticSpawnPolicy { fn get_count(&self, queue: &TaskQueue) -> usize { queue.max_threads } } ```

Examples

extern crate task_queue;

use std::sync::{ Arc, Mutex };

let data = Arc::new(Mutex::new(0));
let mut queue = task_queue::TaskQueue::new();

for _ in 0..1000 {
   let clone = data.clone();

   queue.enqueue(move || {
       let mut guard = clone.lock().unwrap();
       *guard += 1;
   }).unwrap();
}

let not_executed_tasks = queue.stop().unwrap();
for t in &not_executed_tasks {
    t.run();
}

Modules

error
spawn_policy

Structs

Task
TaskQueue