resource tieBreaker() const n:=10 const checkIns:=2000 var stage[n]:int:=([n] 0) var last[n-1]:int:=([n-1] 0) var check:int:=0 process CS(i:=1 to n) fa checkIn:=1 to checkIns -> fa j:=1 to n-1 -> last[j]:=i stage[i]:=j fa k:=1 to n st i!=k -> do stage[k]>=stage[i] and last[j]=i -> od af af # critical section if check=1 -> write("PANIC") fi check:=1 check:=0 # exit critical section stage[i]:=0 af write(i," has completed") end end tieBreaker