public static unsafe void Run <T>(this T jobData, int arrayLength) where T : struct, IJobParallelFor { var parallelForJobProducer = new JobParallelForProducer <T>() { JobData = jobData, #if ENABLE_UNITY_COLLECTIONS_CHECKS Sentinel = 37 + arrayLength // check that code is patched as expected #endif }; var scheduleParams = new JobsUtility.JobScheduleParameters(UnsafeUtility.AddressOf(ref parallelForJobProducer), JobParallelForProducer <T> .Initialize(),
public static unsafe JobHandle Schedule <T>(this T jobData, int arrayLength, int innerloopBatchCount, JobHandle dependsOn = default(JobHandle)) where T : struct, IJobParallelFor { var parallelForJobProducer = new JobParallelForProducer <T>() { JobData = jobData, #if ENABLE_UNITY_COLLECTIONS_CHECKS Sentinel = 37 + arrayLength // check that code is patched as expected #endif }; var scheduleParams = new JobsUtility.JobScheduleParameters(UnsafeUtility.AddressOf(ref parallelForJobProducer), JobParallelForProducer <T> .Initialize(), dependsOn, ScheduleMode.Batched); return(JobsUtility.ScheduleParallelFor(ref scheduleParams, arrayLength, innerloopBatchCount)); }