summaryrefslogtreecommitdiff
path: root/example/src/main/scala/example/main.scala
diff options
context:
space:
mode:
authorJakob Odersky <jakob@odersky.com>2018-11-12 14:08:15 -0800
committerJakob Odersky <jakob@odersky.com>2018-11-12 14:08:15 -0800
commit4b672ab5fc91b2b3c13e23f130f810b79ab7c928 (patch)
treed9fec4768fb91256a863dba607d29f82b6c8115a /example/src/main/scala/example/main.scala
downloadescale-4b672ab5fc91b2b3c13e23f130f810b79ab7c928.tar.gz
escale-4b672ab5fc91b2b3c13e23f130f810b79ab7c928.tar.bz2
escale-4b672ab5fc91b2b3c13e23f130f810b79ab7c928.zip
Initial commit
Diffstat (limited to 'example/src/main/scala/example/main.scala')
-rw-r--r--example/src/main/scala/example/main.scala30
1 files changed, 30 insertions, 0 deletions
diff --git a/example/src/main/scala/example/main.scala b/example/src/main/scala/example/main.scala
new file mode 100644
index 0000000..f6d0a48
--- /dev/null
+++ b/example/src/main/scala/example/main.scala
@@ -0,0 +1,30 @@
+package example
+
+import escale.Channel
+import scala.async.Async._
+import scala.concurrent.Await
+import scala.concurrent.ExecutionContext.Implicits.global
+import scala.concurrent.duration._
+
+object Main extends App {
+
+ val ch = Channel[Int](0)
+
+ val p1 = async {
+ await(ch.put(1))
+ await(ch.put(2))
+ await(ch.put(2))
+ await(ch.put(5))
+ }
+
+ val p2 = async {
+ await(ch.take())
+ await(ch.take())
+ await(ch.take())
+ await(ch.take())
+ }
+
+ val result = Await.result(p2, 3.seconds)
+ println(result)
+
+}