summaryrefslogtreecommitdiff
path: root/test/files/jvm
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2010-05-09 18:09:17 +0000
committerPhilipp Haller <hallerp@gmail.com>2010-05-09 18:09:17 +0000
commit8fe7b531649dd5f82b6ac46720c751750e893500 (patch)
tree6386d1c0b8a2d07c3f1a6467ede4667cff2b261b /test/files/jvm
parentd1185713fa066528eac5f228aae943dd5ad3a142 (diff)
downloadscala-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.check10
-rw-r--r--test/files/jvm/t3407.scala19
-rw-r--r--test/files/jvm/t3412-channel.check10
-rw-r--r--test/files/jvm/t3412-channel.scala38
-rw-r--r--test/files/jvm/t3412.check10
-rw-r--r--test/files/jvm/t3412.scala32
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)
+ }
+
+ }
+
+}