Я пытаюсь воспроизвести этот пример .
Все компилируется, но когда я запускаю его, все мои результаты выглядят так:
scala> NameResolver ! ("www.scala-lang.org", self)
scala> self.receiveWithin(0) { case x => x }
res0: Any = TIMEOUT // and not Some(www.scala-lang.org/128.178.154.102)
scala> NameResolver ! ("wwwwww.scala-lang.org", self)
scala> self.receiveWithin(0) { case x => x }
res1: Any = TIMEOUT // and not None
Вот мой пример:
import scala.actors._
import scala.actors.Actor._
case class Plus(x: Int, y: Int)
val concurrentCalculator = actor {
while(true)
receive {
case Plus(x, y) => println(x + y)
case (Plus(x, y), caller: Actor) => caller ! (x + y)
}
}
scala> concurrentCalculator ! Plus(2,3)
5
scala> concurrentCalculator ! (Plus(2,3), self)
scala> self.receiveWithin(1000) { case x => x }
res0: Any = TIMEOUT // WTF?
Так почему я получаю TIMEOUT
вместо действительного результата?