diff options
author | michelou <michelou@epfl.ch> | 2004-02-16 12:50:22 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2004-02-16 12:50:22 +0000 |
commit | 7cf98e704a6dcca849865a69a9759f563908fc0a (patch) | |
tree | a5f7b265e41f42498eb22cb06b2509af240ff8e9 /sources | |
parent | 2f8a23ed07ba1f19db492999f21b8b79feba1da0 (diff) | |
download | scala-7cf98e704a6dcca849865a69a9759f563908fc0a.tar.gz scala-7cf98e704a6dcca849865a69a9759f563908fc0a.tar.bz2 scala-7cf98e704a6dcca849865a69a9759f563908fc0a.zip |
- added header with $id.
Diffstat (limited to 'sources')
-rw-r--r-- | sources/scala/concurrent/Actor.scala | 10 | ||||
-rw-r--r-- | sources/scala/concurrent/MailBox.scala | 10 | ||||
-rw-r--r-- | sources/scala/concurrent/NameServer.scala | 38 | ||||
-rw-r--r-- | sources/scala/concurrent/SyncVar.scala | 22 | ||||
-rw-r--r-- | sources/scala/concurrent/TIMEOUT.scala | 9 | ||||
-rw-r--r-- | sources/scala/concurrent/jolib.scala | 21 |
6 files changed, 84 insertions, 26 deletions
diff --git a/sources/scala/concurrent/Actor.scala b/sources/scala/concurrent/Actor.scala index 0e8caa4b7f..9ffd0bb7c7 100644 --- a/sources/scala/concurrent/Actor.scala +++ b/sources/scala/concurrent/Actor.scala @@ -1,5 +1,15 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala.concurrent; + abstract class Actor extends Thread with MailBox; diff --git a/sources/scala/concurrent/MailBox.scala b/sources/scala/concurrent/MailBox.scala index 6423ee88ba..c4598f6bab 100644 --- a/sources/scala/concurrent/MailBox.scala +++ b/sources/scala/concurrent/MailBox.scala @@ -1,5 +1,15 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala.concurrent; + //class MailBox with Monitor with LinkedListQueueCreator { class MailBox with ListQueueCreator { diff --git a/sources/scala/concurrent/NameServer.scala b/sources/scala/concurrent/NameServer.scala index 21375d7e9d..b15d5d9dd9 100644 --- a/sources/scala/concurrent/NameServer.scala +++ b/sources/scala/concurrent/NameServer.scala @@ -1,25 +1,35 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala.concurrent; + object NameServer { - val names=new scala.collection.mutable.HashMap[Symbol,Process]; - def register(name:Symbol,proc:Process) = { - if (names.contains(name)) error("Name:" + name + " already registred"); - names += name -> proc; + val names = new scala.collection.mutable.HashMap[Symbol, Process]; + + def register(name: Symbol, proc: Process) = { + if (names.contains(name)) error("Name:" + name + " already registred"); + names += name -> proc; } - def unregister(name:Symbol) = { - if (names.contains(name)) - names -= name; - else - error("Name:" + name + " not registred"); + def unregister(name: Symbol) = { + if (names.contains(name)) + names -= name; + else + error("Name:" + name + " not registred"); } - def whereis(name:Symbol):Option[Process] = - names.get(name); + def whereis(name: Symbol): Option[Process] = + names.get(name); - def send(name:Symbol, msg:Actor#Message) = { - names(name).send(msg) - } + def send(name: Symbol, msg: Actor#Message) = + names(name).send(msg); } diff --git a/sources/scala/concurrent/SyncVar.scala b/sources/scala/concurrent/SyncVar.scala index a05ef32f86..ec3fd281e2 100644 --- a/sources/scala/concurrent/SyncVar.scala +++ b/sources/scala/concurrent/SyncVar.scala @@ -1,19 +1,37 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala.concurrent; + class SyncVar[a] { + private var isDefined: Boolean = false; private var value: a = _; + def get = synchronized { if (!isDefined) wait(); value } + def set(x: a) = synchronized { - value = x ; isDefined = true ; notifyAll(); + value = x; + isDefined = true; + notifyAll() } + def isSet: Boolean = isDefined; + def unset = synchronized { - isDefined = false; + isDefined = false } + } diff --git a/sources/scala/concurrent/TIMEOUT.scala b/sources/scala/concurrent/TIMEOUT.scala index 5c26cf8611..d665fdf649 100644 --- a/sources/scala/concurrent/TIMEOUT.scala +++ b/sources/scala/concurrent/TIMEOUT.scala @@ -1,3 +1,12 @@ +/* __ *\ +** ________ ___ / / ___ Scala API ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** +** __\ \/ /__/ __ |/ /__/ __ | ** +** /____/\___/_/ |_/____/_/ | | ** +** |/ ** +** $Id$ +\* */ + package scala.concurrent; case class TIMEOUT(); diff --git a/sources/scala/concurrent/jolib.scala b/sources/scala/concurrent/jolib.scala index 38623df370..f6e5065475 100644 --- a/sources/scala/concurrent/jolib.scala +++ b/sources/scala/concurrent/jolib.scala @@ -1,14 +1,15 @@ /* __ *\ ** ________ ___ / / ___ Scala API ** -** / __/ __// _ | / / / _ | (c) 2003, LAMP/EPFL ** +** / __/ __// _ | / / / _ | (c) 2003-04, LAMP/EPFL ** ** __\ \/ /__/ __ |/ /__/ __ | ** ** /____/\___/_/ |_/____/_/ | | ** ** |/ ** ** $Id$ -\* */ +\* */ package scala.concurrent; + /** * Library for using join-calculus concurrent primitives in Scala. */ @@ -35,24 +36,24 @@ object jolib { def tryMatch = (ruls find { case Pair(p, _) => canMatch(p) }) match { - case None => () => (); - case Some(Pair(p, r)) => { - val args = values(p); - () => concurrent.ops.spawn(r(args)) - } + case None => () => (); + case Some(Pair(p, r)) => { + val args = values(p); + () => concurrent.ops.spawn(r(args)) + } } } /////////////////// SIGNALS ///////////////////////// - abstract class Signal (join: Join) { + abstract class Signal(join: Join) { type C; val queue = new collection.mutable.Queue[C]; def tryReduction(x: C): unit = { val continuation = join synchronized { - queue.enqueue(x); - join.tryMatch + queue.enqueue(x); + join.tryMatch }; continuation() } |