- channel field was always set to NullChannel and not used
- receiver field is better put into the Mailbox, because there it takes
space only once per actor
- leaves only the bare SystemMessage to be queued
- add Logging trait for nicer interface
- add EventHandlerLogging class for offering the nice interface from
app.log
- add eventHandler instance to app and use that for all internal logging
(this means that some places (dispatchers, remoting) were infiltrated
by app just to do logging, but I think we'll need app in there soon
enough for other reasons)
- rename MessageInvocation to Envelope (same for System...)
- rename MessageQueue to Mailbox and include ExecutableMailbox code
- make MailboxType act as factory, so users can provide their own
- properly type mailbox field as Mailbox everywhere
- adapt CallingThreadDispatcher and some tests
- create DeadletterMailbox and use it to replace actor’s mailbox on
terminate()
Conflicts:
akka-actor/src/test/scala/akka/dispatch/ActorModelSpec.scala
project/build/AkkaProject.scala
both resolved by "union" approach
- change wavesOfActors test for CTD: scheduling SHUTDOWN 10000 times does not
work so well...
- add executeFuture with trivial implementation, TBC
Up to now it relied on the ActorRef's lock, but that has the side effect that a
large time may pass between the suspend test and the actual execution. With
this lock in place, the ActorRef lock should never block and the time between
suspend and the last actor execution is shortened to some cycles (modulo GC).
dispatcherShouldHandleQueueingFromMultipleThreads tests for possible race
conditions in prohibiting multiple threads running the same actor concurrently