summaryrefslogtreecommitdiff
path: root/sources/examples
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2003-03-12 09:52:16 +0000
committerMartin Odersky <odersky@gmail.com>2003-03-12 09:52:16 +0000
commit0f07bf588cd02d7b0ac4776d78d9c3fc7428e96c (patch)
tree3e97518ea344b50802339ab2002ca20583f0cb00 /sources/examples
parent86beea21be94408044884415bbafcad5e0574c66 (diff)
downloadscala-0f07bf588cd02d7b0ac4776d78d9c3fc7428e96c.tar.gz
scala-0f07bf588cd02d7b0ac4776d78d9c3fc7428e96c.tar.bz2
scala-0f07bf588cd02d7b0ac4776d78d9c3fc7428e96c.zip
*** empty log message ***
Diffstat (limited to 'sources/examples')
-rw-r--r--sources/examples/buffer1.scala16
1 files changed, 16 insertions, 0 deletions
diff --git a/sources/examples/buffer1.scala b/sources/examples/buffer1.scala
new file mode 100644
index 0000000000..40be8431be
--- /dev/null
+++ b/sources/examples/buffer1.scala
@@ -0,0 +1,16 @@
+package examples;
+
+import scala.concurrent._;
+
+class OnePlaceBuffer() {
+ private val m = new MailBox(); // An internal mailbox
+ private case class Empty(), Full(x: Int); // Types of messages we deal with
+
+ m send Empty(); // Initialization
+
+ def write(x: Int): Unit =
+ m receive { case Empty() => m send Full(x) }
+
+ def read: Int =
+ m receive { case Full(x) => m send Empty() ; x }
+}