diff options
author | Philipp Haller <hallerp@gmail.com> | 2010-05-09 18:09:17 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2010-05-09 18:09:17 +0000 |
commit | 8fe7b531649dd5f82b6ac46720c751750e893500 (patch) | |
tree | 6386d1c0b8a2d07c3f1a6467ede4667cff2b261b /test/files/jvm | |
parent | d1185713fa066528eac5f228aae943dd5ad3a142 (diff) | |
download | scala-8fe7b531649dd5f82b6ac46720c751750e893500.tar.gz scala-8fe7b531649dd5f82b6ac46720c751750e893500.tar.bz2 scala-8fe7b531649dd5f82b6ac46720c751750e893500.zip |
Closes #3407. Closes #3412. Review by plocinic.
Diffstat (limited to 'test/files/jvm')
-rw-r--r-- | test/files/jvm/t3407.check | 10 | ||||
-rw-r--r-- | test/files/jvm/t3407.scala | 19 | ||||
-rw-r--r-- | test/files/jvm/t3412-channel.check | 10 | ||||
-rw-r--r-- | test/files/jvm/t3412-channel.scala | 38 | ||||
-rw-r--r-- | test/files/jvm/t3412.check | 10 | ||||
-rw-r--r-- | test/files/jvm/t3412.scala | 32 |
6 files changed, 119 insertions, 0 deletions
diff --git a/test/files/jvm/t3407.check b/test/files/jvm/t3407.check new file mode 100644 index 0000000000..a133c88bbe --- /dev/null +++ b/test/files/jvm/t3407.check @@ -0,0 +1,10 @@ +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 +result: 42 diff --git a/test/files/jvm/t3407.scala b/test/files/jvm/t3407.scala new file mode 100644 index 0000000000..6c2ce85c71 --- /dev/null +++ b/test/files/jvm/t3407.scala @@ -0,0 +1,19 @@ +import scala.actors._, scala.actors.Actor._ + +object Test { + + def main(args: Array[String]) { + for (i <- 1 to 10) { + val ft = Futures.future { 42 } + println("result: " + ft()) + } + + for (i <- 1 to 10) { + receiveWithin(0) { + case TIMEOUT => + case msg => println("unexpected: " + msg) + } + } + } + +} diff --git a/test/files/jvm/t3412-channel.check b/test/files/jvm/t3412-channel.check new file mode 100644 index 0000000000..954c6e835d --- /dev/null +++ b/test/files/jvm/t3412-channel.check @@ -0,0 +1,10 @@ +6 +6 +6 +6 +6 +6 +6 +6 +6 +6 diff --git a/test/files/jvm/t3412-channel.scala b/test/files/jvm/t3412-channel.scala new file mode 100644 index 0000000000..fcc439b488 --- /dev/null +++ b/test/files/jvm/t3412-channel.scala @@ -0,0 +1,38 @@ +import scala.actors._, scala.actors.Actor._, scala.actors.Futures._ + +object Test { + + def main(args: Array[String]) { + + actor { + val C: Channel[Int] = new Channel[Int](self) + + def respondAll(fts: List[Future[Int]], cnt: Int): Unit = + fts match { + case List() => C ! 0 + case ft :: rest => + if (cnt % 100 == 0) + println(ft()) + respondAll(rest, cnt + 1) + } + + actor { + val fts = for (_ <- 1 to 1000) + yield C !! (3, {case x: Int => x}) + + actor { + respondAll(fts.toList, 0) + } + } + + loop { + C.react { + case 0 => exit() + case i => reply(i * 2) + } + } + } + + } + +} diff --git a/test/files/jvm/t3412.check b/test/files/jvm/t3412.check new file mode 100644 index 0000000000..954c6e835d --- /dev/null +++ b/test/files/jvm/t3412.check @@ -0,0 +1,10 @@ +6 +6 +6 +6 +6 +6 +6 +6 +6 +6 diff --git a/test/files/jvm/t3412.scala b/test/files/jvm/t3412.scala new file mode 100644 index 0000000000..ced15ab5dc --- /dev/null +++ b/test/files/jvm/t3412.scala @@ -0,0 +1,32 @@ +import scala.actors._, scala.actors.Actor._, scala.actors.Futures._ + +object Test { + + def main(args: Array[String]) { + + val a = actor { + loop { react { + case i: Int => reply(i * 2) + case 'stop => exit() + } } + } + + val fts = for (_ <- 1 to 1000) + yield a !! (3, {case x: Int => x}) + + def respondAll(fts: List[Future[Int]], cnt: Int): Unit = + fts match { + case List() => a ! 'stop + case ft :: rest => + if (cnt % 100 == 0) + println(ft()) + respondAll(rest, cnt + 1) + } + + actor { + respondAll(fts.toList, 0) + } + + } + +} |