summaryrefslogtreecommitdiff
path: root/test/pending/shootout/prodcons.scala
diff options
context:
space:
mode:
Diffstat (limited to 'test/pending/shootout/prodcons.scala')
-rw-r--r--test/pending/shootout/prodcons.scala64
1 files changed, 0 insertions, 64 deletions
diff --git a/test/pending/shootout/prodcons.scala b/test/pending/shootout/prodcons.scala
deleted file mode 100644
index d48d3e94d8..0000000000
--- a/test/pending/shootout/prodcons.scala
+++ /dev/null
@@ -1,64 +0,0 @@
-/* The Computer Language Shootout
- http://shootout.alioth.debian.org/
- contributed by Isaac Gouy (Scala novice)
-*/
-
-import concurrent.SyncVar;
-import concurrent.ops._;
-
-object prodcons {
- def main(args: Array[String]) = {
- val n = toPositiveInt(args);
- val buffer = new SharedBuffer();
- var p = 0;
- var c = 0;
- val cDone = new SyncVar[Boolean];
-
- spawn {
- while(p<n) { p=p+1; buffer put(p); }
- }
-
- spawn {
- var v: Int = _;
- while(c<n) { c=c+1; v = buffer.get; }
- cDone set true;
- }
-
- cDone.get;
- Console println(p + " " + c);
- }
-
-
- private def toPositiveInt(s: Array[String]) = {
- val i =
- try { Integer.parseInt(s(0)); }
- catch { case _ => 1 }
- if (i>0) i; else 1;
- }
-}
-
-
-private class SharedBuffer() {
- var contents: Int = _;
- var available = false;
-
- def get = synchronized {
- while (available == false) wait();
- available = false;
- // Console println("\t" + "get " + contents);
- notifyAll();
- contents
- }
-
- def put(value: Int) = synchronized {
- while (available == true) wait();
- contents = value;
- available = true;
- // Console println("put " + value);
- notifyAll();
- }
-}
-
-
-
-