diff options
author | Philipp Haller <hallerp@gmail.com> | 2010-03-17 11:07:50 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2010-03-17 11:07:50 +0000 |
commit | 7fb02f53def7a11ea2c25c3f831b8ce2c9c9b3be (patch) | |
tree | 451dff991322ae22f3a31041ea5109f7bda81dc7 /test/files/jvm/actor-link-getstate.scala | |
parent | c2a9a308cce58d1a1fec703235cdce4e7438e0a0 (diff) | |
download | scala-7fb02f53def7a11ea2c25c3f831b8ce2c9c9b3be.tar.gz scala-7fb02f53def7a11ea2c25c3f831b8ce2c9c9b3be.tar.bz2 scala-7fb02f53def7a11ea2c25c3f831b8ce2c9c9b3be.zip |
Closes #3185. Review by plocinic.
Diffstat (limited to 'test/files/jvm/actor-link-getstate.scala')
-rw-r--r-- | test/files/jvm/actor-link-getstate.scala | 42 |
1 files changed, 42 insertions, 0 deletions
diff --git a/test/files/jvm/actor-link-getstate.scala b/test/files/jvm/actor-link-getstate.scala new file mode 100644 index 0000000000..955ea45499 --- /dev/null +++ b/test/files/jvm/actor-link-getstate.scala @@ -0,0 +1,42 @@ +import scala.actors.{Actor, Exit} +import scala.actors.Actor._ + +object Slave extends Actor { + def act() { + loop { + react { + case 'doWork => + println("Done") + reply('done) + } + } + } +} + +object Master extends Actor { + def act() { + link(Slave) + Slave ! 'doWork + react { + case 'done => + throw new Exception("Master crashed") + } + } +} + +object Test { + + def main(args: Array[String]) { + actor { + self.trapExit = true + link(Slave) + Slave.start() + Master.start() + react { + case Exit(from, reason) if (from == Slave) => + println(Slave.getState) + } + } + } + +} |