diff options
author | Philipp Haller <hallerp@gmail.com> | 2009-05-31 13:20:43 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2009-05-31 13:20:43 +0000 |
commit | 8c23908ebb28540e89d3eec8ef699d6af55c3d55 (patch) | |
tree | c85f2c566330a996b940e16a2013530952fba9c9 /test/files/jvm/reactor-exceptionOnSend.scala | |
parent | 63031aa7f0f1f32c7b998d118c832cb181b4e99e (diff) | |
download | scala-8c23908ebb28540e89d3eec8ef699d6af55c3d55.tar.gz scala-8c23908ebb28540e89d3eec8ef699d6af55c3d55.tar.bz2 scala-8c23908ebb28540e89d3eec8ef699d6af55c3d55.zip |
New tests for exceptions and Actor.receiveWithin.
Diffstat (limited to 'test/files/jvm/reactor-exceptionOnSend.scala')
-rw-r--r-- | test/files/jvm/reactor-exceptionOnSend.scala | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/test/files/jvm/reactor-exceptionOnSend.scala b/test/files/jvm/reactor-exceptionOnSend.scala new file mode 100644 index 0000000000..3684943b9b --- /dev/null +++ b/test/files/jvm/reactor-exceptionOnSend.scala @@ -0,0 +1,44 @@ +import scala.actors.Reactor +import scala.actors.Actor._ + +case class MyException(text: String) extends Exception(text) + +object A extends Reactor { + override def exceptionHandler = { + case MyException(text) => + println("receiver handles exception") + } + + def guard(): Boolean = + if (state == 0) { + state = 1 + throw MyException("illegal state") + } else + true + + var state = 0 + + def act() { + loop { + react { + case 'hello if guard() => + println("process") + exit() + } + } + } +} + +object B extends Reactor { + def act() { + A.start() + A ! 'hello + A ! 'hello + } +} + +object Test { + def main(args: Array[String]) { + B.start() + } +} |