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/scala/concurrent/SyncVar.scala | |
parent | 2f8a23ed07ba1f19db492999f21b8b79feba1da0 (diff) | |
download | scala-7cf98e704a6dcca849865a69a9759f563908fc0a.tar.gz scala-7cf98e704a6dcca849865a69a9759f563908fc0a.tar.bz2 scala-7cf98e704a6dcca849865a69a9759f563908fc0a.zip |
- added header with $id.
Diffstat (limited to 'sources/scala/concurrent/SyncVar.scala')
-rw-r--r-- | sources/scala/concurrent/SyncVar.scala | 22 |
1 files changed, 20 insertions, 2 deletions
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 } + } |