summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/parallel/package.scala
diff options
context:
space:
mode:
authorAleksandar Prokopec <axel22@gmail.com>2012-02-23 16:34:34 +0100
committerAleksandar Prokopec <axel22@gmail.com>2012-02-23 16:34:34 +0100
commit1852a7ddf7f8c5fb4a85e64b73123d333e698932 (patch)
treef9b5f405c56544b37f51c9f99b8dab1882fe2d58 /src/library/scala/collection/parallel/package.scala
parent4a984f82d5bfca05123c53bd385d0299818f8a75 (diff)
downloadscala-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.scala12
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] {