summaryrefslogtreecommitdiff
path: root/docs/examples
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2007-05-01 09:34:19 +0000
committerPhilipp Haller <hallerp@gmail.com>2007-05-01 09:34:19 +0000
commitcfffbfed6875c21478ba57a1536551b743396536 (patch)
tree097672368f43c0ac9703f600b1ce87d11f5cc115 /docs/examples
parent838b1dea8dbe0398a6887b1ba52554e90cfc9992 (diff)
downloadscala-cfffbfed6875c21478ba57a1536551b743396536.tar.gz
scala-cfffbfed6875c21478ba57a1536551b743396536.tar.bz2
scala-cfffbfed6875c21478ba57a1536551b743396536.zip
Improved ping pong example.
Diffstat (limited to 'docs/examples')
-rw-r--r--docs/examples/actors/pingpong.scala21
1 files changed, 9 insertions, 12 deletions
diff --git a/docs/examples/actors/pingpong.scala b/docs/examples/actors/pingpong.scala
index 679385abbe..e270116097 100644
--- a/docs/examples/actors/pingpong.scala
+++ b/docs/examples/actors/pingpong.scala
@@ -3,28 +3,26 @@ package examples.actors
import scala.actors.Actor
import scala.actors.Actor._
-case object SendPing
case object Ping
case object Pong
case object Stop
class Ping(count: int, pong: Actor) extends Actor {
def act() {
- var pingsLeft = count
+ var pingsLeft = count - 1
+ pong ! Ping
loop {
react {
- case SendPing =>
- pong ! Ping
- pingsLeft = pingsLeft - 1
case Pong =>
if (pingsLeft % 1000 == 0)
Console.println("Ping: pong")
- if (pingsLeft > 0)
- self ! SendPing
- else {
+ if (pingsLeft > 0) {
+ pong ! Ping
+ pingsLeft -= 1
+ } else {
Console.println("Ping: stop")
pong ! Stop
- exit('stop)
+ exit()
}
}
}
@@ -40,10 +38,10 @@ class Pong extends Actor {
if (pongCount % 1000 == 0)
Console.println("Pong: ping "+pongCount)
sender ! Pong
- pongCount = pongCount + 1
+ pongCount += 1
case Stop =>
Console.println("Pong: stop")
- exit('stop)
+ exit()
}
}
}
@@ -54,5 +52,4 @@ object pingpong extends Application {
val ping = new Ping(100000, pong)
ping.start
pong.start
- ping ! SendPing
}