diff options
Diffstat (limited to 'src/actors')
-rw-r--r-- | src/actors/scala/actors/Future.scala | 3 | ||||
-rw-r--r-- | src/actors/scala/actors/Reactor.scala | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/src/actors/scala/actors/Future.scala b/src/actors/scala/actors/Future.scala index e26b0b02df..38b268d795 100644 --- a/src/actors/scala/actors/Future.scala +++ b/src/actors/scala/actors/Future.scala @@ -127,7 +127,8 @@ object Futures { Actor.receive(reaction) } - awaitWith(partFuns) + if (partFuns.length > 0) + awaitWith(partFuns) var results: List[Option[Any]] = Nil val size = resultsMap.size diff --git a/src/actors/scala/actors/Reactor.scala b/src/actors/scala/actors/Reactor.scala index 7fda8678c1..1015b2eb15 100644 --- a/src/actors/scala/actors/Reactor.scala +++ b/src/actors/scala/actors/Reactor.scala @@ -34,6 +34,7 @@ trait Reactor extends OutputChannel[Any] { /* The actor's mailbox. */ private[actors] val mailbox = new MessageQueue("Reactor") + // guarded by this private[actors] val sendBuffer = new Queue[(Any, OutputChannel[Any])] /* If the actor waits in a react, continuation holds the @@ -121,6 +122,7 @@ trait Reactor extends OutputChannel[Any] { def receiver: Actor = this.asInstanceOf[Actor] + // guarded by this private[actors] def drainSendBuffer(mbox: MessageQueue) { while (!sendBuffer.isEmpty) { val item = sendBuffer.dequeue() |