threadpool, timed. , , Strategy.DefaultTimeoutScheduler, java threadpool . Future.apply , , JVM . , :
scalaz.concurrent.Strategy.DefaultTimeoutScheduler.shutdown()
:
val newTimeOutScheduler = Executors.newScheduledThreadPool(1, new ThreadFactory {
val defaultThreadFactory = Executors.defaultThreadFactory()
def newThread(r: Runnable) = {
val t = defaultThreadFactory.newThread(r)
t.setDaemon(true)
t
}
})
val f = Future.apply(longComputation).timed(1.second)(newTimeOutScheduler)
implicits, :
implicit val newTimeOutScheduler = Executors.newScheduledThreadPool(1, new ThreadFactory {
val defaultThreadFactory = Executors.defaultThreadFactory()
def newThread(r: Runnable) = {
val t = defaultThreadFactory.newThread(r)
t.setDaemon(true)
t
}
})
val f = Future.apply(longComputation).timed(1.second)
UPDATE:
, .