uniform_tasks_to_pointers

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_define_task_fn, zp_write};

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

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

let pool = ZeroPool::new();
let mut results = [0u64; 2];
let tasks = [
    MyTaskStruct { value: 1, result: &mut results[0] },
    MyTaskStruct { value: 2, result: &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();
}