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();
}