summaryrefslogtreecommitdiff
path: root/docs
diff options
context:
space:
mode:
authormichelou <michelou@epfl.ch>2011-11-23 18:26:50 +0000
committermichelou <michelou@epfl.ch>2011-11-23 18:26:50 +0000
commit4213eb4d56c51311bcd2ccaa9710897aaef974de (patch)
treec431f982ecbf80bb54670e3294b752b1e4043bcb /docs
parent667227b796fb2601363b6b7c0763b0e739a0edb2 (diff)
downloadscala-4213eb4d56c51311bcd2ccaa9710897aaef974de.tar.gz
scala-4213eb4d56c51311bcd2ccaa9710897aaef974de.tar.bz2
scala-4213eb4d56c51311bcd2ccaa9710897aaef974de.zip
updated some code examples
Diffstat (limited to 'docs')
-rw-r--r--docs/examples/computeserver.scala9
-rw-r--r--docs/examples/oneplacebuffer.scala52
-rw-r--r--docs/examples/plugintemplate/src/plugintemplate/standalone/PluginRunner.scala2
3 files changed, 34 insertions, 29 deletions
diff --git a/docs/examples/computeserver.scala b/docs/examples/computeserver.scala
index bd6f536dfa..788be284d1 100644
--- a/docs/examples/computeserver.scala
+++ b/docs/examples/computeserver.scala
@@ -12,7 +12,7 @@ class ComputeServer(n: Int) {
private val openJobs = new Channel[Job]()
- private def processor(i: Int): Unit = {
+ private def processor(i: Int) {
while (true) {
val job = openJobs.read
println("read a job")
@@ -32,16 +32,17 @@ class ComputeServer(n: Int) {
() => reply.get
}
- spawn(replicate(0, n) { processor })
+ //spawn(replicate(0, n) { processor })
+ spawn((0 until n).par foreach { processor })
}
-object computeserver extends Application {
+object computeserver extends App {
def kill(delay: Int) = new java.util.Timer().schedule(
new java.util.TimerTask {
override def run() = {
println("[killed]")
- System.exit(0)
+ sys exit 0
}
},
delay) // in milliseconds
diff --git a/docs/examples/oneplacebuffer.scala b/docs/examples/oneplacebuffer.scala
index 02b8a9cec6..f7047a1c92 100644
--- a/docs/examples/oneplacebuffer.scala
+++ b/docs/examples/oneplacebuffer.scala
@@ -2,35 +2,39 @@ package examples
object oneplacebuffer {
- import scala.concurrent.{MailBox, ops}
+ import scala.actors.Actor._
+ import scala.concurrent.ops
class OnePlaceBuffer {
- private val m = new MailBox() {} // An internal mailbox
- private case class Empty() // Types of messages we deal with
- private case class Full(x: Int)
+ private case class Put(x: Int)
+ private case object Get
- m send Empty() // Initialization
-
- def write(x: Int) {
- m receive {
- case Empty() =>
- println("put " + x)
- m send Full(x)
+ private val m = actor {
+ var buf: Option[Int] = None
+ loop {
+ react {
+ case Put(x) if buf.isEmpty =>
+ println("put "+x);
+ buf = Some(x); reply()
+ case Get if !buf.isEmpty =>
+ val x = buf.get
+ println("get "+x)
+ buf = None; reply(x)
+ }
}
}
+ m.start()
- def read: Int = m receive {
- case Full(x) =>
- println("get " + x)
- m send Empty(); x
- }
+ def write(x: Int) { m !? Put(x) }
+
+ def read(): Int = (m !? Get).asInstanceOf[Int]
}
def kill(delay: Int) = new java.util.Timer().schedule(
new java.util.TimerTask {
- override def run() = {
+ override def run() {
println("[killed]")
- exit(0)
+ sys exit 0
}
},
delay) // in milliseconds
@@ -40,19 +44,19 @@ object oneplacebuffer {
val random = new java.util.Random()
def producer(n: Int) {
- Thread.sleep(random.nextInt(1000))
- buf.write(n)
+ Thread.sleep(random nextInt 1000)
+ buf write n
producer(n + 1)
}
def consumer {
- Thread.sleep(random.nextInt(1000))
- val n = buf.read
+ Thread.sleep(random nextInt 1000)
+ val n = buf.read()
consumer
}
- ops.spawn(producer(0))
- ops.spawn(consumer)
+ ops spawn producer(0)
+ ops spawn consumer
kill(10000)
}
diff --git a/docs/examples/plugintemplate/src/plugintemplate/standalone/PluginRunner.scala b/docs/examples/plugintemplate/src/plugintemplate/standalone/PluginRunner.scala
index 786d72d37c..06fe669cbd 100644
--- a/docs/examples/plugintemplate/src/plugintemplate/standalone/PluginRunner.scala
+++ b/docs/examples/plugintemplate/src/plugintemplate/standalone/PluginRunner.scala
@@ -26,7 +26,7 @@ extends Global(settings, reporter) {
phasesSet += analyzer.typerFactory
phasesSet += superAccessors // add super accessors
phasesSet += pickler // serialize symbol tables
- phasesSet += refchecks // perform reference and override checking, translate nested objects
+ phasesSet += refChecks // perform reference and override checking, translate nested objects
for (phase <- TemplatePlugin.components(this)) {
phasesSet += phase