summaryrefslogtreecommitdiff
path: root/docs/examples/actors/Joins.scala
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/actors/Joins.scala')
-rw-r--r--docs/examples/actors/Joins.scala19
1 files changed, 10 insertions, 9 deletions
diff --git a/docs/examples/actors/Joins.scala b/docs/examples/actors/Joins.scala
index 7ea2a50e11..637cb5d092 100644
--- a/docs/examples/actors/Joins.scala
+++ b/docs/examples/actors/Joins.scala
@@ -11,29 +11,29 @@ abstract class Producer[T] extends Iterator[T] {
def next: T = {
setCurrent()
val res = current.get
- current = (coordinator !? Next()).asInstanceOf[Option[T]]
+ 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 def setCurrent() = if (current == null) current = (coordinator !? Next).asInstanceOf[Option[T]]
- private case class HasValue(value: T)
- private case class Next
- private case class Done
- private case class Continue
+ private case class HasValue(value: T)
+ private case object Next
+ private case object Done
+ private case object Continue
/** A thread-based coordinator */
private val coordinator = actor {
while (true) {
receive {
- case Next() =>
+ case Next =>
reply {
receive {
case HasValue(v) =>
reply()
Some(v)
- case Done() =>
+ case Done =>
None
}
}
@@ -43,7 +43,8 @@ abstract class Producer[T] extends Iterator[T] {
actor {
produceValues
- coordinator !? Done()
+ coordinator !? Done
+ ()
}
}