Select Git revision
WatchActor.java
WatchActor.java 672 B
package akka.common;
import akka.actor.ActorRef;
import akka.actor.Terminated;
import akka.actor.UntypedActor;
public class WatchActor extends UntypedActor {
public static final class WatchMe {
final ActorRef actor;
public WatchMe(ActorRef actor) {
this.actor = actor;
}
}
private int running;
@Override
public void onReceive(Object message) throws Exception {
if (message instanceof WatchMe) {
ActorRef actor = ((WatchMe) message).actor;
context().watch(actor);
running++;
} else if (message instanceof Terminated) {
running--;
if (running == 0) {
context().system().shutdown();
}
} else {
unhandled(message);
}
}
}