summaryrefslogtreecommitdiff
path: root/test/files/jvm/actmig-react-within.scala
diff options
context:
space:
mode:
authorGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-26 04:19:51 -0700
committerGrzegorz Kossakowski <grzegorz.kossakowski@gmail.com>2012-09-26 04:19:51 -0700
commit5691373feb3a99d5429dedfaec994d6421b3286f (patch)
tree925ecc1bb985081717d1f59676c0ba2fc66b36ed /test/files/jvm/actmig-react-within.scala
parent339dd82162526bf2448ce00aebe6c3de3307772a (diff)
parentf362bbb40bd3bffb90efb4e67e52b38452573e3e (diff)
downloadscala-5691373feb3a99d5429dedfaec994d6421b3286f.tar.gz
scala-5691373feb3a99d5429dedfaec994d6421b3286f.tar.bz2
scala-5691373feb3a99d5429dedfaec994d6421b3286f.zip
Merge pull request #1394 from vjovanov/amk/ActorRef
Moving ActorRef API to scala.concurrent.
Diffstat (limited to 'test/files/jvm/actmig-react-within.scala')
-rw-r--r--test/files/jvm/actmig-react-within.scala48
1 files changed, 48 insertions, 0 deletions
diff --git a/test/files/jvm/actmig-react-within.scala b/test/files/jvm/actmig-react-within.scala
new file mode 100644
index 0000000000..43350ef120
--- /dev/null
+++ b/test/files/jvm/actmig-react-within.scala
@@ -0,0 +1,48 @@
+/**
+ * NOTE: Code snippets from this test are included in the Actor Migration Guide. In case you change
+ * code in these tests prior to the 2.10.0 release please send the notification to @vjovanov.
+ */
+import scala.actors.migration.MigrationSystem._
+import scala.actors.Actor._
+import scala.actors._
+import scala.actors.migration._
+import java.util.concurrent.{ TimeUnit, CountDownLatch }
+import scala.collection.mutable.ArrayBuffer
+import scala.concurrent.duration._
+import scala.concurrent.{ Promise, Await }
+
+object Test {
+ val finished = Promise[Boolean]
+
+ def testReactWithin() = {
+ val sActor = actor {
+ loop {
+ reactWithin(1) {
+ case scala.actors.TIMEOUT =>
+ println("received")
+ exit()
+ case _ =>
+ println("Should not occur.")
+ }
+ }
+ }
+
+ val myActor = MigrationSystem.actorOf(Props(() => new StashingActor {
+ context.setReceiveTimeout(1 millisecond)
+ def receive = {
+ case ReceiveTimeout =>
+ println("received")
+ finished.success(true)
+ context.stop(self)
+ case _ =>
+ println("Should not occur.")
+ }
+ }, "default-stashing-dispatcher"))
+ }
+
+ def main(args: Array[String]) = {
+ testReactWithin()
+ Await.ready(finished.future, 5 seconds)
+ }
+
+}