summaryrefslogtreecommitdiff
path: root/sources/examples/pilib/rwlock.scala
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2004-02-23 13:10:20 +0000
committermichelou <michelou@epfl.ch>2004-02-23 13:10:20 +0000
commit6a574075fcb00f4cfec77ecc0e5f0da827d31d04 (patch)
tree3bb7950b307bdd89d8312226e0da7487791f4335 /sources/examples/pilib/rwlock.scala
parentb1e0f1183624a886e3b86905a25d29fe2ac38532 (diff)
downloadscala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.tar.gz
scala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.tar.bz2
scala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.zip
- added package clause.
- added test for 'args(0)'.
Diffstat (limited to 'sources/examples/pilib/rwlock.scala')
-rw-r--r--sources/examples/pilib/rwlock.scala19
1 files changed, 13 insertions, 6 deletions
diff --git a/sources/examples/pilib/rwlock.scala b/sources/examples/pilib/rwlock.scala
index 65578ea51b..0090b6929c 100644
--- a/sources/examples/pilib/rwlock.scala
+++ b/sources/examples/pilib/rwlock.scala
@@ -1,3 +1,5 @@
+package examples.pilib;
+
/**
* From Pi to Scala: Semaphores, monitors, read/write locks.
* Readers/writers locks.
@@ -313,12 +315,17 @@ object rwlock {
writer(i, rwlock)
}
- val rwlock = args(0) match {
- case "1" => new ReadWriteLock1
- case "2" => new ReadWriteLock2
- case "3" => new ReadWriteLock3
- case "4" => new ReadWriteLock4
- case "5" => new ReadWriteLock5
+ val n = try { Integer.parseInt(args(0)) } catch { case _ => 0 }
+ if (n < 1 || 5 < n) {
+ Console.println("Usage: scala examples.pilib.rwlock <n> (n=1..5)");
+ exit
+ }
+ val rwlock = n match {
+ case 1 => new ReadWriteLock1
+ case 2 => new ReadWriteLock2
+ case 3 => new ReadWriteLock3
+ case 4 => new ReadWriteLock4
+ case 5 => new ReadWriteLock5
}
List.range(0, 5) foreach (i => spawn < reader(i, rwlock) >);
List.range(0, 5) foreach (i => spawn < writer(i, rwlock) >);