From 2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Fri, 9 Jan 2004 15:00:41 +0000 Subject: *** empty log message *** --- test/files/pos/MailBox.scala | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) (limited to 'test/files/pos') 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; -- cgit v1.2.3