1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39
|
@deprecated("Suppress warnings", since="2.11")
object Test {
import scala.actors.{Actor, TIMEOUT}
import Actor._
def main(args: Array[String]) {
val a = actor {
try {
react {
case 'hello =>
reply(42)
}
} catch {
case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
e.printStackTrace()
}
}
val b = actor {
try {
self.trapExit = true
val ft = a !! 'hello
println(ft())
// no message should be left over in mailbox
reactWithin(0) {
case TIMEOUT =>
println("OK")
case any =>
println(any)
}
} catch {
case e: Throwable if !e.isInstanceOf[scala.util.control.ControlThrowable] =>
e.printStackTrace()
}
}
}
}
|