diff options
author | Philipp Haller <hallerp@gmail.com> | 2010-04-13 14:41:02 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2010-04-13 14:41:02 +0000 |
commit | bc791369f79f2d1a72a93674eb7b0f34ca58d8d1 (patch) | |
tree | a29f5941272cbe318f67f446d8202156da0ecf06 /test/files/jvm/reactor-producer-consumer.scala | |
parent | c54b7a99e8a4913ceee3f40631edba72c33145ec (diff) | |
download | scala-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.scala | 20 |
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() |