Unity.Jobs support
Add triangulation to job pipeline
This package supports scheduling with Unity.Jobs. You can learn about the job system here. To schedule triangulation, use the Schedule method:
dependencies = triangulator.Schedule(dependencies);
Catching errors in the job
If the triangulation algorithm fails, checking the status and handling it in the job pipeline can be considered. For example:
[BurstCompile]
private struct Job : IJob
{
  NativeReference<Status>.ReadOnly status;
  public Job(Triangulator triangulator)
  {
    status = triangulator.Output.Status.AsReadOnly();
  }
  public void Execute()
  {
    if (status != Status.OK)
    {
      return;
    }
    ...
  }
}
...
var dependencies = default(JobHandle);
dependencies = triangulator.Schedule(dependencies);
dependencies = new Job(triangulator).Schedule(dependencies);
...
Generating input in the job
Input can be generated within a job pipeline. You have to use deferred arrays. Here's an example snippet:
using var positions = new NativeList<double2>(64, Allocator.Persistent);
using var constraints = new NativeList<int>(64, Allocator.Persistent);
using var holes = new NativeList<double2>(64, Allocator.Persistent);
using var triangulator = new Triangulator(64, Allocator.Persistent)
{
  Input = 
  {
    Positions = positions.AsDeferredJobArray(),
    ConstraintEdges = constraints.AsDeferredJobArray(),
    HoleSeeds = holes.AsDeferredJobArray()
  }
}
var dependencies = new JobHandle();
dependencies = new GenerateInputJob(positions, constraints, holes).Schedule(dependencies);
dependencies = triangulator.Schedule(dependencies);
dependencies.Complete();