From 04e2cccd0d3707ffa6f6dc1e679d4adf159b1e39 Mon Sep 17 00:00:00 2001 From: Aleksandar Pokopec Date: Wed, 28 Jul 2010 15:56:55 +0000 Subject: Fix for last commit. --- src/library/scala/collection/parallel/ParIterableLike.scala | 6 +++--- .../scala/collection/parallel/immutable/ParHashTrie.scala | 2 +- src/library/scala/collection/parallel/mutable/ParArray.scala | 11 ----------- 3 files changed, 4 insertions(+), 15 deletions(-) (limited to 'src/library') 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 } -- cgit v1.2.3