существует аспект фьючерсов, который я точно не понимаю из официального учебника ref. http://docs.scala-lang.org/overviews/core/futures.html
У фьючерсов в scala есть встроенный механизм тайм-аута? Скажем, пример ниже представляет собой текстовый файл размером 5 гигабайт... неявная область действия "Implicits.global" в конечном итоге приводит к тому, что onFailure срабатывает неблокирующим способом или может быть определен? И без какого-либо дефолтного тайм-аута, не означает ли это, что ни один успех и неудача никогда не будут срабатывать?
import scala.concurrent._
import ExecutionContext.Implicits.global
val firstOccurence: Future[Int] = future {
val source = scala.io.Source.fromFile("myText.txt")
source.toSeq.indexOfSlice("myKeyword")
}
firstOccurence onSuccess {
case idx => println("The keyword first appears at position: " + idx)
}
firstOccurence onFailure {
case t => println("Could not process file: " + t.getMessage)
}