diff options
author | Aleksandar Prokopec <axel22@gmail.com> | 2012-02-23 16:34:34 +0100 |
---|---|---|
committer | Aleksandar Prokopec <axel22@gmail.com> | 2012-02-23 16:34:34 +0100 |
commit | 1852a7ddf7f8c5fb4a85e64b73123d333e698932 (patch) | |
tree | f9b5f405c56544b37f51c9f99b8dab1882fe2d58 /src/library/scala/collection/parallel/package.scala | |
parent | 4a984f82d5bfca05123c53bd385d0299818f8a75 (diff) | |
download | scala-1852a7ddf7f8c5fb4a85e64b73123d333e698932.tar.gz scala-1852a7ddf7f8c5fb4a85e64b73123d333e698932.tar.bz2 scala-1852a7ddf7f8c5fb4a85e64b73123d333e698932.zip |
Add tasksupport as a configurable field in parallel collections.
This required a bit of refactoring in the tasks objects and implementations
of various operations. Combiners now hold a reference to a tasksupport
object and pass it on to their result if `resultWithTaskSupport` is called.
Additionally, several bugs that have to do with CanBuildFrom and combiner
resolution have been fixed.
Diffstat (limited to 'src/library/scala/collection/parallel/package.scala')
-rw-r--r-- | src/library/scala/collection/parallel/package.scala | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/library/scala/collection/parallel/package.scala b/src/library/scala/collection/parallel/package.scala index 8f19d0ecdb..8f49b80c93 100644 --- a/src/library/scala/collection/parallel/package.scala +++ b/src/library/scala/collection/parallel/package.scala @@ -46,8 +46,16 @@ package object parallel { else new ThreadPoolTaskSupport } else new ThreadPoolTaskSupport - val tasksupport = getTaskSupport - + val defaultTaskSupport: TaskSupport = getTaskSupport + + def setTaskSupport[Coll](c: Coll, t: TaskSupport): Coll = { + c match { + case pc: ParIterableLike[_, _, _] => pc.tasksupport = t + case _ => // do nothing + } + c + } + /* implicit conversions */ implicit def factory2ops[From, Elem, To](bf: CanBuildFrom[From, Elem, To]) = new FactoryOps[From, Elem, To] { |