This example demonstrates that Ariadne can model complex behaviors.
The program is a parallel version of Bowyer's algorithm to construct a
Delaunay Triangulation [4]. In Bowyer's algorithm, points
are inserted into an existing mesh one at a time; in our version, they
are inserted in parallel. Each point is managed by its own process
which communicates with surrounding processes looking for triangles
with circumcircles that contain its point. The triangles located in this
search are ``locked" to prevent concurrent access by other insertions,
and the polygonal region they form is modified to add the new point.
To avoid deadlock, conflicting requests for locks on triangles are
resolved by aborting one of the insertions.