package com.netflix.governator;
import java.util.concurrent.CountDownLatch;
import javax.inject.Inject;
import javax.inject.Singleton;
/**
* Default shutdown signal, mostly to be used for runtime applications, using
* a CountDown latch.
*
* @author elandau
*
*/
@Singleton
public class DefaultLifecycleShutdownSignal extends AbstractLifecycleShutdownSignal {
@Inject
public DefaultLifecycleShutdownSignal(LifecycleManager manager) {
super(manager);
}
private final CountDownLatch latch = new CountDownLatch(1);
@Override
public void signal() {
shutdown();
latch.countDown();
}
@Override
public void await() throws InterruptedException {
latch.await();
}
}