Struct JobDependencyTracker

Public

Automatic dependency tracking for the Unity Job System.

Uses reflection to find the [ReadOnly] and [WriteOnly] attributes on job data struct fields. These are used to automatically figure out dependencies between jobs.

A job that reads from an array depends on the last job that wrote to that array. A job that writes to an array depends on the last job that wrote to the array as well as all jobs that read from the array.

struct ExampleJob : IJob {
public NativeArray<int> someData;

public void Execute () {
// Do something
}
}

void Start () {
var tracker = new JobDependencyTracker();
var data = new NativeArray<int>(100, Allocator.TempJob);
var job1 = new ExampleJob {
someData = data
}.Schedule(ref tracker);

var job2 = new ExampleJob {
someData = data
}.Schedule(ref tracker);

// job2 automatically depends on job1 because they both require read/write access to the data array
}

Inner Types

Public Methods

DeferDispose< T > (data)

Disposes the native array after all the current jobs are finished with it.

Public
Dispose ()

Diposes this tracker.

Public
ScheduleBatch (commands, results, minCommandsPerJob)

Schedules a raycast batch command.

Public

Public Variables

AllWritesDependency

JobHandle that represents a dependency for all jobs.

Public

Private/Protected Members

JobReadsFrom (job, nativeArrayHash)
Package
JobWritesTo (job, nativeArrayHash)
Package
slots
Package