summaryrefslogtreecommitdiff
path: root/test/files/pos/MailBox.scala
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2004-01-09 15:00:41 +0000
committerMartin Odersky <odersky@gmail.com>2004-01-09 15:00:41 +0000
commit2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f (patch)
tree629412ad71ebcaa3a27e50f9c82bf4be62af7ccc /test/files/pos/MailBox.scala
parent253a192ede3e994d6c832c124c7c02fb551d1006 (diff)
downloadscala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.tar.gz
scala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.tar.bz2
scala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.zip
*** empty log message ***
Diffstat (limited to 'test/files/pos/MailBox.scala')
-rw-r--r--test/files/pos/MailBox.scala18
1 files changed, 15 insertions, 3 deletions
diff --git a/test/files/pos/MailBox.scala b/test/files/pos/MailBox.scala
index c44da9fdfa..e081735911 100644
--- a/test/files/pos/MailBox.scala
+++ b/test/files/pos/MailBox.scala
@@ -3,6 +3,18 @@ package test;
import scala.concurrent._;
class MailBox with Monitor {
+ private class LinkedList[a] {
+ var elem: a = _;
+ var next: LinkedList[a] = null;
+ }
+
+ def insert(l: LinkedList[a], x: a): LinkedList[a] {
+ l.next = new LinkedList[a];
+ l.next.elem = x;
+ l.next.next = l.next;
+ l
+ }
+
private abstract class Receiver {
def isDefined(msg: Any): boolean;
var msg: Any = null;
@@ -21,7 +33,7 @@ class MailBox with Monitor {
if (r1 != null) {
r.next = r1.next; r1.elem.msg = msg; r1.elem.notify;
} else {
- lastSent = lastSent.insert(msg);
+ lastSent = insert(lastSent, msg);
}
}
@@ -34,7 +46,7 @@ class MailBox with Monitor {
if (s1 != null) {
s.next = s1.next; s1.elem
} else {
- val r = lastReceiver.insert(new Receiver {
+ val r = insert(lastReceiver, new Receiver {
def isDefined(msg: Any) = f.isDefinedAt(msg);
});
lastReceiver = r;
@@ -54,7 +66,7 @@ class MailBox with Monitor {
if (s1 != null) {
s.next = s1.next; s1.elem
} else {
- val r = lastReceiver.insert(new Receiver {
+ val r = insert(lastReceiver, new Receiver {
def isDefined(msg: Any) = f.isDefinedAt(msg);
});
lastReceiver = r;