diff options
author | Philipp Haller <hallerp@gmail.com> | 2007-05-01 09:34:19 +0000 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2007-05-01 09:34:19 +0000 |
commit | cfffbfed6875c21478ba57a1536551b743396536 (patch) | |
tree | 097672368f43c0ac9703f600b1ce87d11f5cc115 | |
parent | 838b1dea8dbe0398a6887b1ba52554e90cfc9992 (diff) | |
download | scala-cfffbfed6875c21478ba57a1536551b743396536.tar.gz scala-cfffbfed6875c21478ba57a1536551b743396536.tar.bz2 scala-cfffbfed6875c21478ba57a1536551b743396536.zip |
Improved ping pong example.
-rw-r--r-- | docs/examples/actors/pingpong.scala | 21 |
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 } |