blob: 588073dc5e22a0b5ada32a666cd1254dfc6d408a (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
/* __ *\
** ________ ___ / / ___ Scala API **
** / __/ __// _ | / / / _ | (c) 2003-2011, LAMP/EPFL **
** __\ \/ /__/ __ |/ /__/ __ | http://scala-lang.org/ **
** /____/\___/_/ |_/____/_/ | | **
** |/ **
\* */
package scala.concurrent
import java.util.concurrent.{ThreadPoolExecutor, LinkedBlockingQueue, TimeUnit}
/** The `TaskRunners` object...
*
* @author Philipp Haller
*/
object TaskRunners {
implicit val threadRunner: FutureTaskRunner =
new ThreadRunner
implicit val threadPoolRunner: FutureTaskRunner = {
val numCores = Runtime.getRuntime().availableProcessors()
val keepAliveTime = 60000L
val workQueue = new LinkedBlockingQueue[Runnable]
val exec = new ThreadPoolExecutor(numCores,
numCores,
keepAliveTime,
TimeUnit.MILLISECONDS,
workQueue,
new ThreadPoolExecutor.CallerRunsPolicy)
JavaConversions.asTaskRunner(exec)
}
}
|