diff options
author | Martin Odersky <odersky@gmail.com> | 2004-01-09 15:00:41 +0000 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2004-01-09 15:00:41 +0000 |
commit | 2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f (patch) | |
tree | 629412ad71ebcaa3a27e50f9c82bf4be62af7ccc /test/files | |
parent | 253a192ede3e994d6c832c124c7c02fb551d1006 (diff) | |
download | scala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.tar.gz scala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.tar.bz2 scala-2f88fe7918a98e0e076fc3d44e9b8ca646c64c1f.zip |
*** empty log message ***
Diffstat (limited to 'test/files')
-rw-r--r-- | test/files/pos/MailBox.scala | 18 |
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; |