public class LockTest { public static def main(Array[String]) { val p = new Peterson(); finish{ async { p.lock(0); Console.OUT.println("critical section 0"); p.unlock(0); } async { p.lock(1); Console.OUT.println("critical section 1"); p.unlock(1); } } val b = new Bakery(6); finish{ async { b.lock(0); Console.OUT.println("critical section 0"); b.unlock(0); } async { b.lock(1); Console.OUT.println("critical section 1"); b.unlock(1); } async { b.lock(2); Console.OUT.println("critical section 2"); b.unlock(2); } async { b.lock(3); Console.OUT.println("critical section 3"); b.unlock(3); } async { b.lock(4); Console.OUT.println("critical section 4"); b.unlock(4); } async { b.lock(5); Console.OUT.println("critical section 5"); b.unlock(5); } } } }