summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--sources/examples/boundedbuffer.scala4
1 files changed, 3 insertions, 1 deletions
diff --git a/sources/examples/boundedbuffer.scala b/sources/examples/boundedbuffer.scala
index fdc6feb9b4..06ecec9d9a 100644
--- a/sources/examples/boundedbuffer.scala
+++ b/sources/examples/boundedbuffer.scala
@@ -4,10 +4,12 @@ object boundedbuffer {
import concurrent.ops._;
- class BoundedBuffer[a](N: Int) extends Monitor() {
+ class BoundedBuffer[a](N: Int) {
var in = 0, out = 0, n = 0;
val elems = new Array[a](N);
+ def await(def cond: Boolean) = while (!cond) { wait() }
+
def put(x: a) = synchronized {
await (n < N);
elems(in) = x; in = (in + 1) % N; n = n + 1;