Return of the DefaultSystemMessageQueue fixes. See #3170

This commit is contained in:
Björn Antonsson 2013-03-26 13:55:18 +01:00
parent 428bdf5fb4
commit eb32fc9c24

View file

@ -392,10 +392,15 @@ private[akka] trait DefaultSystemMessageQueue { self: Mailbox ⇒
@tailrec
final def systemDrain(newContents: LatestFirstSystemMessageList): EarliestFirstSystemMessageList = {
val currentList = systemQueueGet
if (systemQueuePut(currentList, newContents)) currentList.reverse else systemDrain(newContents)
if (currentList.head == NoMessage) new EarliestFirstSystemMessageList(null)
else if (systemQueuePut(currentList, newContents)) currentList.reverse
else systemDrain(newContents)
}
def hasSystemMessages: Boolean = systemQueueGet.nonEmpty
def hasSystemMessages: Boolean = systemQueueGet.head match {
case null | NoMessage false
case _ true
}
}