diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-12-21 16:03:07 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-12-21 16:03:07 +0000 |
commit | 348fd6e69ae96b5d8187e1f25372c0908a5ce218 (patch) | |
tree | 1410e97d31e73632ddfc67728fdc16c231e64ed5 | |
parent | 27f2d87d886d302282bf12e30ebc271074ebef52 (diff) | |
download | scala-348fd6e69ae96b5d8187e1f25372c0908a5ce218.tar.gz scala-348fd6e69ae96b5d8187e1f25372c0908a5ce218.tar.bz2 scala-348fd6e69ae96b5d8187e1f25372c0908a5ce218.zip |
closed #2829. review by rompf.
-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") + } +} |