Introduce parental supervision, BUT TESTS ARE STILL FAILING
- every actor is now supervised, where the root of the tree is app.guardian, which has its supervisor field set to a special ActorRef obtained from provider.theOneWhoWalksTheBubblesOfSpaceTime (this name is meant to indicate that this ref is outside of the universe, cf. Michio Kaku) - changed all tests to obtain specially supervised children (i.e. not top-level) via (supervisor ? Props).as[ActorRef].get - add private[akka] ScalaActorRef.sendSystemMessage for sending Supervise() - everything routing or remote is broken wrt. supervision, as that was not “properly” implemented to begin with, will be tackled after app/supervision/eventbus/AkkaSpec are stabilized enough
This commit is contained in:
parent
25e8eb1422
commit
d3837b9fc3
34 changed files with 290 additions and 226 deletions
|
|
@ -56,14 +56,14 @@ object SystemMessage {
|
|||
sealed trait SystemMessage extends PossiblyHarmful {
|
||||
var next: SystemMessage = _
|
||||
}
|
||||
case class Create() extends SystemMessage
|
||||
case class Recreate(cause: Throwable) extends SystemMessage
|
||||
case class Suspend() extends SystemMessage
|
||||
case class Resume() extends SystemMessage
|
||||
case class Terminate() extends SystemMessage
|
||||
case class Supervise(child: ActorRef) extends SystemMessage
|
||||
case class Link(subject: ActorRef) extends SystemMessage
|
||||
case class Unlink(subject: ActorRef) extends SystemMessage
|
||||
case class Create() extends SystemMessage // send to self from Dispatcher.register
|
||||
case class Recreate(cause: Throwable) extends SystemMessage // sent to self from ActorCell.restart
|
||||
case class Suspend() extends SystemMessage // sent to self from ActorCell.suspend
|
||||
case class Resume() extends SystemMessage // sent to self from ActorCell.resume
|
||||
case class Terminate() extends SystemMessage // sent to self from ActorCell.stop
|
||||
case class Supervise(child: ActorRef) extends SystemMessage // sent to supervisor ActorRef from ActorCell.start
|
||||
case class Link(subject: ActorRef) extends SystemMessage // sent to self from ActorCell.startsMonitoring
|
||||
case class Unlink(subject: ActorRef) extends SystemMessage // sent to self from ActorCell.stopsMonitoring
|
||||
|
||||
final case class TaskInvocation(app: AkkaApplication, function: () ⇒ Unit, cleanup: () ⇒ Unit) extends Runnable {
|
||||
def run() {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue