package com.netflix.governator.guice.runner.events; import javax.inject.Singleton; import com.netflix.governator.guice.runner.TerminationEvent; /** * Simple TerminatEvent using a countdown latch as the termination signal. * * @author elandau */ @Singleton public class BlockingTerminationEvent implements TerminationEvent { private volatile boolean isTerminated = false; @Override public synchronized void await() throws InterruptedException { while (!isTerminated) { this.wait(); } } @Override public synchronized void terminate() { isTerminated = true; this.notifyAll(); } @Override public boolean isTerminated() { return isTerminated; } }