summaryrefslogtreecommitdiff
path: root/sources
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2004-01-09 14:33:04 +0000
committerMartin Odersky <odersky@gmail.com>2004-01-09 14:33:04 +0000
commit253a192ede3e994d6c832c124c7c02fb551d1006 (patch)
treec3fc90ddde9960bb4271ca758c58f92754dcc37b /sources
parent57bf1138b8fdaafc9c4ea1e883aba222ec8117cc (diff)
downloadscala-253a192ede3e994d6c832c124c7c02fb551d1006.tar.gz
scala-253a192ede3e994d6c832c124c7c02fb551d1006.tar.bz2
scala-253a192ede3e994d6c832c124c7c02fb551d1006.zip
*** empty log message ***
Diffstat (limited to 'sources')
-rw-r--r--sources/scala/concurrent/Actor.scala6
-rw-r--r--sources/scala/concurrent/Channel.scala8
-rw-r--r--sources/scala/concurrent/LinkedList.scala12
3 files changed, 18 insertions, 8 deletions
diff --git a/sources/scala/concurrent/Actor.scala b/sources/scala/concurrent/Actor.scala
index dd4cee26d2..c86fd5dfb7 100644
--- a/sources/scala/concurrent/Actor.scala
+++ b/sources/scala/concurrent/Actor.scala
@@ -2,17 +2,17 @@ package scala.concurrent;
abstract class Actor extends Thread() {
- type Message = AnyRef;
+ type Message = Any;
private val mb = new MailBox;
def send(msg: Message): unit =
mb.send(msg);
- def receive[a](f: PartialFunction[Message, a]): a =
+ protected def receive[a](f: PartialFunction[Message, a]): a =
mb.receive(f);
- def receiveWithin[a](msec: long)(f: PartialFunction[Message, a]): a =
+ protected def receiveWithin[a](msec: long)(f: PartialFunction[Message, a]): a =
mb.receiveWithin(msec)(f);
}
diff --git a/sources/scala/concurrent/Channel.scala b/sources/scala/concurrent/Channel.scala
index e82568b956..b89e20f065 100644
--- a/sources/scala/concurrent/Channel.scala
+++ b/sources/scala/concurrent/Channel.scala
@@ -1,16 +1,14 @@
package scala.concurrent;
-import scala.collection.mutable.LinkedList;
-
class Channel[a] with Monitor {
- var dummy: a = _;
- private var written = new LinkedList[a](dummy, null);
+ private var written = new LinkedList[a];
private var lastWritten = written;
private var nreaders = 0;
def write(x: a) = synchronized {
- lastWritten.next = new LinkedList(x, null);
+ lastWritten.next = new LinkedList[a];
lastWritten = lastWritten.next;
+ lastWritten.elem = x;
if (nreaders > 0) notify();
}
diff --git a/sources/scala/concurrent/LinkedList.scala b/sources/scala/concurrent/LinkedList.scala
new file mode 100644
index 0000000000..7e9358b36d
--- /dev/null
+++ b/sources/scala/concurrent/LinkedList.scala
@@ -0,0 +1,12 @@
+package scala.concurrent;
+class LinkedList[a] {
+ var elem: a = _;
+ var next: LinkedList[a] = null;
+ def insert(elem: a): LinkedList[a] = {
+ val nx = new LinkedList[a];
+ nx.elem = elem;
+ nx.next = next;
+ next = nx;
+ next
+ }
+}