pub unsafe extern "C" fn kt_pipeline(
    n_threads: c_int,
    func: Option<unsafe extern "C" fn(arg1: *mut c_void, arg2: c_int, arg3: *mut c_void) -> *mut c_void>,
    shared_data: *mut c_void,
    n_steps: c_int
)