Function uniform_tasks_to_pointers

Source
pub fn uniform_tasks_to_pointers<T>(
    task_fn: TaskFnPointer,
    params_vec: &[T],
) -> Vec<TaskItem> 
Expand description

Convert a slice of uniform task parameters to work items

This is a performance optimization that pre-converts parameter pointers, avoiding repeated conversions during batch submission. Useful when you need to submit the same batch multiple times.

§Examples

use zero_pool::{ZeroPool, uniform_tasks_to_pointers, zp_task_params, zp_define_task_fn, zp_write};

zp_task_params! {
    MyTask { value: u64, result: *mut u64 }
}

zp_define_task_fn!(my_task_fn, MyTask, |params| {
    zp_write!(params.result, params.value * 2);
});

let pool = ZeroPool::new();
let mut results = [0u64; 2];
let tasks = [
    MyTask::new(1, &mut results[0]),
    MyTask::new(2, &mut results[1])
];

// Convert once, reuse multiple times
let work_items = uniform_tasks_to_pointers(my_task_fn, &tasks);

for _ in 0..5 {
    let future = pool.submit_raw_task_batch(&work_items);
    future.wait();
}