fixed bug in dispatcher

This commit is contained in:
Jonas Bonér 2009-12-14 07:56:25 +01:00
parent 6ab4b48166
commit 3de15e3590

View file

@ -65,11 +65,9 @@ class ExecutorBasedEventDrivenDispatcher(_name: String) extends MessageDispatche
def run = {
val mailbox = invocation.receiver._mailbox
mailbox.synchronized {
val messages = mailbox.iterator
while (messages.hasNext) {
messages.next.invoke
messages.remove
}
val messages = mailbox.toArray
messages.foreach(message => message.asInstanceOf[MessageInvocation].invoke)
mailbox.clear
invocation.receiver._suspend
}
}