From f3068614fb38fc08be54ac1179a1cfec52b8b13b Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Mon, 26 Oct 2009 21:01:12 +0000 Subject: Second half of fix and tests for #1518. --- test/files/jvm/actor-receive-sender.scala | 51 +++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) create mode 100644 test/files/jvm/actor-receive-sender.scala (limited to 'test/files/jvm/actor-receive-sender.scala') diff --git a/test/files/jvm/actor-receive-sender.scala b/test/files/jvm/actor-receive-sender.scala new file mode 100644 index 0000000000..ea7c40cced --- /dev/null +++ b/test/files/jvm/actor-receive-sender.scala @@ -0,0 +1,51 @@ +import scala.actors.{Actor, TIMEOUT, Exit} +import scala.actors.Actor._ + +object Test { + + val NUM = 2000 + + def main(args: Array[String]) { + var b: Actor = null + var c: Actor = null + + val a = actor { + for (_ <- 0 until NUM) + receive { + case 'hello if sender == b => // do nothing + } + b ! 'ok + for (_ <- 0 until NUM) + receiveWithin (1000) { + case 'bye if sender == b => // do nothing + case TIMEOUT => b ! 'fail + } + b ! 'ok + } + + b = actor { + self.trapExit = true + link(a) + + for (_ <- 0 until NUM) + a ! 'hello + + val proceed = receive { + case Exit(from, reason) => println("FAIL"); false + case 'ok => println("OK"); true + case other => println(other); false + } + + if (proceed) { + for (_ <- 0 until NUM) + a ! 'bye + receive { + case Exit(from, reason) => println("FAIL") + case 'ok => println("OK") + case other => println(other) + } + } + } + } + +} -- cgit v1.2.3