diff options
author | cremet <cremet@epfl.ch> | 2003-10-21 13:27:26 +0000 |
---|---|---|
committer | cremet <cremet@epfl.ch> | 2003-10-21 13:27:26 +0000 |
commit | 1be7ad1e4dd7444ee6082b47fe90ecefa9ae6c43 (patch) | |
tree | a4e7f611e1b17e5d9360fdb265a3ee855f883d0a /sources/examples/jolib/Ref.scala | |
parent | fe8f946e8767926357d2ef2f29451f840687f72f (diff) | |
download | scala-1be7ad1e4dd7444ee6082b47fe90ecefa9ae6c43.tar.gz scala-1be7ad1e4dd7444ee6082b47fe90ecefa9ae6c43.tar.bz2 scala-1be7ad1e4dd7444ee6082b47fe90ecefa9ae6c43.zip |
- Made the Ref class polymorphic.
Diffstat (limited to 'sources/examples/jolib/Ref.scala')
-rw-r--r-- | sources/examples/jolib/Ref.scala | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/sources/examples/jolib/Ref.scala b/sources/examples/jolib/Ref.scala index 09846b4bd6..5e2b955bb7 100644 --- a/sources/examples/jolib/Ref.scala +++ b/sources/examples/jolib/Ref.scala @@ -1,21 +1,23 @@ -import concurrent.jolib._; import concurrent.SyncVar; +import concurrent.jolib._; -class Ref(init: int) extends Join { +class Ref[a](init: a) extends Join { - object get extends Synchr[int](this) { case class C() extends SyncVar[int]; } - object set extends Synchr[unit](this) { case class C(x: int) extends SyncVar[unit]; } - object state extends Asynchr(this) { case class C(x: int); } + object get extends Synchr[a](this) { case class C() extends SyncVar[a]; } + object set extends Synchr[unit](this) { case class C(x: a) extends SyncVar[unit]; } + object state extends Asynchr(this) { case class C(x: a); } rules ( - Pair(List(get, state), { case List(g @ get.C(), state.C(x) ) => { g.set(x); state.send(state.C(x)) } }), - Pair(List(set, state), { case List(s @ set.C(x), state.C(y) ) => { s.set(()); state.send(state.C(x)) } }) + Pair(List(get, state), { case List(g @ get.C(), state.C(x) ) => + { g.set(x); state.send(state.C(x)) } }), + Pair(List(set, state), { case List(s @ set.C(x), state.C(y) ) => + { s.set(()); state.send(state.C(x)) } }) ); state.send(state.C(init)); - def Get: int = get.send(get.C()); - def Set(x: int): unit = set.send(set.C(x)); + def Get: a = get.send(get.C()); + def Set(x: a): unit = set.send(set.C(x)); } object RefTest { |