summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/actors/scala/actors/Future.scala12
-rw-r--r--test/files/jvm/future-awaitall-zero.check1
-rw-r--r--test/files/jvm/future-awaitall-zero.scala17
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")
+ }
+}