playframework/Play20 — pull request #559 by pk11 (2012-11-20 02:46:27+00:00)
Title: make ExecutionContext-s configurable

- change `play.core.Invoker`'s visibility to `private[play]`
- change `play.core.Execution`'s visibility to `private[play]`
- make `play.core.Execution.internalContext` threadpool's size configurable (defaults to number of available processors)
- make `play.api.libs.iteratee.internal.defaultExecutionContext` threadpool's size configurable (defaults to number of available processors)
- add `typesafe config` dependency to iteratee (it was needed for the configuration)

I was evaluating both `scala.concurrent.forkjoin.ForkJoinPool` and `java.util.concurrent.Executors.newCachedThreadPool` as backends for the thread pools and my conclusion was that a simple fixed size pool is providing the best overall solution (predictable, simple, configurable etc.)