diff options
author | michelou <michelou@epfl.ch> | 2004-02-23 13:10:20 +0000 |
---|---|---|
committer | michelou <michelou@epfl.ch> | 2004-02-23 13:10:20 +0000 |
commit | 6a574075fcb00f4cfec77ecc0e5f0da827d31d04 (patch) | |
tree | 3bb7950b307bdd89d8312226e0da7487791f4335 /sources/examples | |
parent | b1e0f1183624a886e3b86905a25d29fe2ac38532 (diff) | |
download | scala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.tar.gz scala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.tar.bz2 scala-6a574075fcb00f4cfec77ecc0e5f0da827d31d04.zip |
- added package clause.
- added test for 'args(0)'.
Diffstat (limited to 'sources/examples')
-rw-r--r-- | sources/examples/pilib/rwlock.scala | 19 |
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) >); |