summaryrefslogtreecommitdiff
path: root/test/files/jvm/reactor-producer-consumer.scala
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2010-04-13 14:41:02 +0000
committerPhilipp Haller <hallerp@gmail.com>2010-04-13 14:41:02 +0000
commitbc791369f79f2d1a72a93674eb7b0f34ca58d8d1 (patch)
treea29f5941272cbe318f67f446d8202156da0ecf06 /test/files/jvm/reactor-producer-consumer.scala
parentc54b7a99e8a4913ceee3f40631edba72c33145ec (diff)
downloadscala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.tar.gz
scala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.tar.bz2
scala-bc791369f79f2d1a72a93674eb7b0f34ca58d8d1.zip
Hardened actor tests. No review.
Diffstat (limited to 'test/files/jvm/reactor-producer-consumer.scala')
-rw-r--r--test/files/jvm/reactor-producer-consumer.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/test/files/jvm/reactor-producer-consumer.scala b/test/files/jvm/reactor-producer-consumer.scala
index 0d33043fc6..8a6b17c3ad 100644
--- a/test/files/jvm/reactor-producer-consumer.scala
+++ b/test/files/jvm/reactor-producer-consumer.scala
@@ -7,6 +7,7 @@ object Test {
class UnboundedBuffer extends Reactor[Any] {
def act() {
+ try {
react {
case Stop() =>
case Get(from) =>
@@ -17,11 +18,16 @@ object Test {
act()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
class Producer(buf: UnboundedBuffer, n: Int, delay: Long, parent: Reactor[Any]) extends Reactor[Any] {
def act() {
+ try {
var i = 0
while (i < n) {
i += 1
@@ -29,6 +35,10 @@ object Test {
buf ! Put(42)
}
parent ! Stop()
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
@@ -36,6 +46,7 @@ object Test {
val step = n / 10
var i = 0
def act() {
+ try {
if (i < n) {
i += 1
if (delay > 0) Thread.sleep(delay)
@@ -49,12 +60,17 @@ object Test {
} else {
parent ! Stop()
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
def main(args: Array[String]) {
val parent = new Reactor[Any] {
def act() {
+ try {
val buffer = new UnboundedBuffer
buffer.start()
val producer = new Producer(buffer, 10000, 0, this)
@@ -68,6 +84,10 @@ object Test {
buffer ! Stop()
}
}
+ } catch {
+ case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
+ e.printStackTrace()
+ }
}
}
parent.start()