RobustPredicates holds instance-level workspace arrays used by InCircleAdapt for adaptive exact arithmetic. RobustPredicates.Default is a singleton, shared by all Mesh instances. When multiple threads concurrently call GenericMesher.Triangulate() → Dwyer.Triangulate() → InCircle → InCircleAdapt, they mutate the same workspace arrays, producing corrupted intermediate values. This manifests non-deterministically as NullReferenceException in TriangleLocator.Locate or "Unable to find a triangle on path" in ConstraintMesher.FindDirection.
RobustPredicates holds instance-level workspace arrays used by InCircleAdapt for adaptive exact arithmetic. RobustPredicates.Default is a singleton, shared by all Mesh instances. When multiple threads concurrently call GenericMesher.Triangulate() → Dwyer.Triangulate() → InCircle → InCircleAdapt, they mutate the same workspace arrays, producing corrupted intermediate values. This manifests non-deterministically as NullReferenceException in TriangleLocator.Locate or "Unable to find a triangle on path" in ConstraintMesher.FindDirection.