Marks the current phase completed that the calling thread was executing.
This is only necessary when the thread exits the last phase, as phase(int) call implies the
public void abort()
Tell all the threads that this sequencing was aborted.
Everyone waiting for future phases will receive an error.
Calling this method from the finally block prevents a dead lock if one of the participating thread
aborts with an exception, as without the explicit abort operation, other threads will block forever
for a phase that'll never come.