diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-11-03 13:05:20 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-11-03 13:05:20 +0000 |
commit | 04fb01d1315c39cc316f1e16715110a7f3c116cb (patch) | |
tree | 647071466243343c25d596cf3b3bcedbdab21697 /src/actors | |
parent | 621da8e1ff8cebfada253e287b8f41bbd3eb8e23 (diff) | |
download | scala-04fb01d1315c39cc316f1e16715110a7f3c116cb.tar.gz scala-04fb01d1315c39cc316f1e16715110a7f3c116cb.tar.bz2 scala-04fb01d1315c39cc316f1e16715110a7f3c116cb.zip |
Fix and test for #2530.
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() |