Merge branch 'master' of github.com:jboner/akka
This commit is contained in:
commit
2bf5ccdf26
5 changed files with 14 additions and 10 deletions
|
|
@ -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))
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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()
|
||||
|
|
|
|||
|
|
@ -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)
|
||||
|
|
|
|||
|
|
@ -151,10 +151,14 @@ case class ThreadPoolConfigDispatcherBuilder(dispatcherFactory: (ThreadPoolConfi
|
|||
/**
|
||||
* @author <a href="http://jonasboner.com">Jonas Boné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
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -20,7 +20,7 @@ import akka.actor.{
|
|||
RemoteActorSystemMessage,
|
||||
uuidFrom,
|
||||
Uuid,
|
||||
Exit,
|
||||
Death,
|
||||
LifeCycleMessage
|
||||
}
|
||||
import akka.actor.Actor._
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue