From b00a1198aa69dd112da9d2b36f28a74472066c90 Mon Sep 17 00:00:00 2001 From: Philipp Haller Date: Mon, 13 Nov 2006 16:19:22 +0000 Subject: Removed old iterator example. --- docs/examples/actors/Joins.scala | 58 ---------------------------------------- 1 file changed, 58 deletions(-) delete mode 100644 docs/examples/actors/Joins.scala (limited to 'docs/examples') diff --git a/docs/examples/actors/Joins.scala b/docs/examples/actors/Joins.scala deleted file mode 100644 index 85105ec178..0000000000 --- a/docs/examples/actors/Joins.scala +++ /dev/null @@ -1,58 +0,0 @@ -package examples.actors - -import scala.actors.Actor._ - -abstract class Producer[T] extends Iterator[T] { - protected def produce(x: T): unit = coordinator ! HasValue(x) - protected def produceValues: unit - - def hasNext = { setCurrent(); !current.isEmpty } - - def next: T = { - setCurrent() - val res = current.get - current = (coordinator !? Next).asInstanceOf[Option[T]] - res - } - - private var current: Option[T] = null - private def setCurrent() = - if (current == null) current = (coordinator !? Next).asInstanceOf[Option[T]] - - private case class HasValue(value: T) - private case object Next - private case object Done - private case object Continue - - private val coordinator = actor { - while (true) - receive { - case Next => - reply { - receive { - case HasValue(v) => - Some(v) - case Done => - None - } - } - } - } - - actor { - produceValues - coordinator ! Done - } -} - -object Joins extends Application { - def from(m: int, n: int) = new Producer[int] { - def produceValues = for (val i <- m until n) produce(i) - } - - // note that it works from the main thread - val it = from(1, 10) - while (it.hasNext) { - Console.println(it.next) - } -} -- cgit v1.2.3