Merge branch 'master' of github.com:jboner/akka

This commit is contained in:
Peter Veentjer 2011-07-11 21:10:53 +03:00
commit 2bf5ccdf26
5 changed files with 14 additions and 10 deletions

View file

@ -49,7 +49,7 @@ class SupervisorHierarchySpec extends JUnitSuite {
manager.startLink(workerTwo)
manager.startLink(workerThree)
workerOne ! Exit(workerOne, new FireWorkerException("Fire the worker!"))
workerOne ! Death(workerOne, new FireWorkerException("Fire the worker!"))
// manager + all workers should be restarted by only killing a worker
// manager doesn't trap exits, so boss will restart manager
@ -70,8 +70,8 @@ class SupervisorHierarchySpec extends JUnitSuite {
}).start()
boss.startLink(crasher)
crasher ! Exit(crasher, new FireWorkerException("Fire the worker!"))
crasher ! Exit(crasher, new FireWorkerException("Fire the worker!"))
crasher ! Death(crasher, new FireWorkerException("Fire the worker!"))
crasher ! Death(crasher, new FireWorkerException("Fire the worker!"))
assert(countDown.await(2, TimeUnit.SECONDS))
}

View file

@ -58,7 +58,7 @@ case object RevertHotSwap extends AutoReceivedMessage with LifeCycleMessage
case class Restart(reason: Throwable) extends AutoReceivedMessage with LifeCycleMessage
case class Exit(dead: ActorRef, killer: Throwable) extends AutoReceivedMessage with LifeCycleMessage
case class Death(dead: ActorRef, killer: Throwable) extends AutoReceivedMessage with LifeCycleMessage
case class Link(child: ActorRef) extends AutoReceivedMessage with LifeCycleMessage
@ -727,7 +727,7 @@ trait Actor {
msg match {
case HotSwap(code, discardOld) become(code(self), discardOld)
case RevertHotSwap unbecome()
case Exit(dead, reason) self.handleTrapExit(dead, reason)
case Death(dead, reason) self.handleTrapExit(dead, reason)
case Link(child) self.link(child)
case Unlink(child) self.unlink(child)
case UnlinkAndStop(child) self.unlink(child); child.stop()

View file

@ -709,7 +709,7 @@ class LocalActorRef private[akka] (private[this] val actorFactory: () ⇒ Actor,
dead.restart(reason, maxRetries, within)
case _
if (_supervisor.isDefined) notifySupervisorWithMessage(Exit(this, reason))
if (_supervisor.isDefined) notifySupervisorWithMessage(Death(this, reason))
else dead.stop()
}
}
@ -857,7 +857,7 @@ class LocalActorRef private[akka] (private[this] val actorFactory: () ⇒ Actor,
channel.sendException(reason)
if (supervisor.isDefined) notifySupervisorWithMessage(Exit(this, reason))
if (supervisor.isDefined) notifySupervisorWithMessage(Death(this, reason))
else {
lifeCycle match {
case Temporary shutDownTemporaryActor(this)

View file

@ -151,10 +151,14 @@ case class ThreadPoolConfigDispatcherBuilder(dispatcherFactory: (ThreadPoolConfi
/**
* @author <a href="http://jonasboner.com">Jonas Bon&#233;r</a>
*/
class MonitorableThreadFactory(val name: String) extends ThreadFactory {
class MonitorableThreadFactory(val name: String, val daemonic: Boolean = false) extends ThreadFactory {
protected val counter = new AtomicLong
def newThread(runnable: Runnable) = new MonitorableThread(runnable, name)
def newThread(runnable: Runnable) = {
val t = new MonitorableThread(runnable, name)
t.setDaemon(daemonic)
t
}
}
/**

View file

@ -20,7 +20,7 @@ import akka.actor.{
RemoteActorSystemMessage,
uuidFrom,
Uuid,
Exit,
Death,
LifeCycleMessage
}
import akka.actor.Actor._