Skip to main content

Crate zero_pool

Crate zero_pool 

Source
Expand description

§Zero-Pool: Ultra-High Performance Thread Pool

A thread pool implementation designed for maximum performance through:

  • Zero-overhead task submission via raw pointers
  • Result-via-parameters pattern (no result transport)
  • Single global queue with optimal load balancing
  • Function pointer dispatch (no trait objects)
  • Lock-free queue operations with event-based worker coordination

§Safety

This library achieves high performance through raw pointer usage. Users must ensure:

  • Parameter structs remain valid until TaskFuture::wait() completes
  • Result pointers remain valid until task execution finishes
  • Task functions take exactly one parameter (usually the task parameter struct)
  • Task functions are thread-safe and data-race free
  • No undefined behavior in unsafe task code

This API is unsafe-by-contract and performs no runtime validation of these invariants.

§Example

use zero_pool::ZeroPool;

struct MyTaskParams { value: u64, result: *mut u64 }

fn my_task(params: &MyTaskParams) {
    unsafe { *params.result = params.value * 2; }
}

let pool = ZeroPool::new();
let mut result = 0u64;
let task_params = MyTaskParams { value: 42, result: &mut result };
pool.submit_task(my_task, &task_params).wait();
assert_eq!(result, 84);

Structs§

TaskFuture
A future that tracks completion of submitted tasks
ZeroPool

Functions§

global_pool
Returns a reference to the lazily initialized global pool.