diff options
-rw-r--r-- | src/actors/scala/actors/Future.scala | 12 | ||||
-rw-r--r-- | test/files/jvm/future-awaitall-zero.check | 1 | ||||
-rw-r--r-- | test/files/jvm/future-awaitall-zero.scala | 17 |
3 files changed, 24 insertions, 6 deletions
diff --git a/src/actors/scala/actors/Future.scala b/src/actors/scala/actors/Future.scala index ea0c3a691f..70bcde9380 100644 --- a/src/actors/scala/actors/Future.scala +++ b/src/actors/scala/actors/Future.scala @@ -110,12 +110,6 @@ object Futures { * is negative. */ def awaitAll(timeout: Long, fts: Future[Any]*): List[Option[Any]] = { - val thisActor = Actor.self - val timerTask = new java.util.TimerTask { - def run() { thisActor ! TIMEOUT } - } - Actor.timer.schedule(timerTask, timeout) - var resultsMap: collection.mutable.Map[Int, Option[Any]] = new collection.mutable.HashMap[Int, Option[Any]] var cnt = 0 @@ -135,6 +129,12 @@ object Futures { singleCase }) + val thisActor = Actor.self + val timerTask = new java.util.TimerTask { + def run() { thisActor ! TIMEOUT } + } + Actor.timer.schedule(timerTask, timeout) + def awaitWith(partFuns: Seq[PartialFunction[Any, Pair[Int, Any]]]) { val reaction: PartialFunction[Any, Unit] = new PartialFunction[Any, Unit] { def isDefinedAt(msg: Any) = msg match { diff --git a/test/files/jvm/future-awaitall-zero.check b/test/files/jvm/future-awaitall-zero.check new file mode 100644 index 0000000000..d86bac9de5 --- /dev/null +++ b/test/files/jvm/future-awaitall-zero.check @@ -0,0 +1 @@ +OK diff --git a/test/files/jvm/future-awaitall-zero.scala b/test/files/jvm/future-awaitall-zero.scala new file mode 100644 index 0000000000..49c51f2c7e --- /dev/null +++ b/test/files/jvm/future-awaitall-zero.scala @@ -0,0 +1,17 @@ +import scala.actors.Futures._ +import scala.actors.Actor._ + +object Test { + def main(args: Array[String]) { + val ft1 = future { reactWithin(1000) { + case _ => println("FAIL") + } } + + val ft2 = future { reactWithin(2000) { + case _ => println("FAIL") + } } + + val res = awaitAll(0, ft1, ft2) + println("OK") + } +} |