summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-28 15:56:55 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-07-28 15:56:55 +0000
commit04e2cccd0d3707ffa6f6dc1e679d4adf159b1e39 (patch)
tree99a5e80f4bb3dd6a6b45a57abcec904be4f11905 /src
parentdb5f08d5bb2ba343bad303b8f165cc51f3b7a51d (diff)
downloadscala-04e2cccd0d3707ffa6f6dc1e679d4adf159b1e39.tar.gz
scala-04e2cccd0d3707ffa6f6dc1e679d4adf159b1e39.tar.bz2
scala-04e2cccd0d3707ffa6f6dc1e679d4adf159b1e39.zip
Fix for last commit.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/collection/parallel/ParIterableLike.scala6
-rw-r--r--src/library/scala/collection/parallel/immutable/ParHashTrie.scala2
-rw-r--r--src/library/scala/collection/parallel/mutable/ParArray.scala11
3 files changed, 4 insertions, 15 deletions
diff --git a/src/library/scala/collection/parallel/ParIterableLike.scala b/src/library/scala/collection/parallel/ParIterableLike.scala
index ff37c89517..c6130aeb12 100644
--- a/src/library/scala/collection/parallel/ParIterableLike.scala
+++ b/src/library/scala/collection/parallel/ParIterableLike.scala
@@ -946,9 +946,9 @@ extends IterableLike[T, Repr]
// and keep processors busier with merging
// (work stealing while prefix scanning means more work later)
val processors = parallelismLevel min availableProcessors
- len > ((size / tweak(processors)) max 1)
+ len > (((size + 1) / tweak(processors)) max 1)
}
- private def tweak(p: Int) = if (p < 4) 2 else p / 2
+ private def tweak(p: Int) = 2 // if (p < 4) p else p / 2
override def split = {
val pits = pit.split
for ((p, untilp) <- pits zip pits.scanLeft(0)(_ + _.remaining); if untilp < len) yield {
@@ -973,7 +973,7 @@ extends IterableLike[T, Repr]
i += 1
}
}
- def shouldSplitFurther = len > threshold(size, parallelismLevel)
+ def shouldSplitFurther = len > (parallelismLevel min availableProcessors) // threshold(size, parallelismLevel)
def split = {
val fp = len / 2
val sp = len - fp
diff --git a/src/library/scala/collection/parallel/immutable/ParHashTrie.scala b/src/library/scala/collection/parallel/immutable/ParHashTrie.scala
index bb157b13dd..cb835c7fcd 100644
--- a/src/library/scala/collection/parallel/immutable/ParHashTrie.scala
+++ b/src/library/scala/collection/parallel/immutable/ParHashTrie.scala
@@ -189,7 +189,7 @@ self: EnvironmentPassingCombiner[(K, V), ParHashTrie[K, V]] =>
while (i < chunksz) {
val kv = chunkarr(i)
val hc = kv._1.##
- trie = trie.updated0(kv._1, hc, rootbits, kv._2, kv)
+ trie = trie.updated0(kv._1, hc, rootbits, kv._2, kv, null)
i += 1
}
i = 0
diff --git a/src/library/scala/collection/parallel/mutable/ParArray.scala b/src/library/scala/collection/parallel/mutable/ParArray.scala
index da99db860b..0d0b045912 100644
--- a/src/library/scala/collection/parallel/mutable/ParArray.scala
+++ b/src/library/scala/collection/parallel/mutable/ParArray.scala
@@ -511,17 +511,6 @@ extends ParSeq[T]
}
override def scanToArray[U >: T, A >: U](z: U, op: (U, U) => U, destarr: Array[A], from: Int) {
- // var last = z
- // var j = from
- // var k = i
- // val ntil = until
- // val a = arr
- // while (k < ntil) {
- // last = op(last, a(k).asInstanceOf[U])
- // destarr(j) = last
- // k += 1
- // }
- // i = k
scanToArray_quick[U](array, destarr.asInstanceOf[Array[Any]], op, z, i, until, from)
i = until
}