summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-10 10:47:20 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2011-01-10 10:47:20 +0000
commit92132d6efd281cbbd7dcfcb2853d4d9183370d45 (patch)
treeb42b8dd6c2b802b229909278fbbfd8a05c35a898 /src
parent67042fd53e2508165954fb9200321278504757ac (diff)
downloadscala-92132d6efd281cbbd7dcfcb2853d4d9183370d45.tar.gz
scala-92132d6efd281cbbd7dcfcb2853d4d9183370d45.tar.bz2
scala-92132d6efd281cbbd7dcfcb2853d4d9183370d45.zip
Enabled parallel group by.
No review.
Diffstat (limited to 'src')
-rw-r--r--src/library/scala/collection/parallel/ParIterableLike.scala10
-rw-r--r--src/library/scala/collection/parallel/ParSeqViewLike.scala2
2 files changed, 6 insertions, 6 deletions
diff --git a/src/library/scala/collection/parallel/ParIterableLike.scala b/src/library/scala/collection/parallel/ParIterableLike.scala
index 9f894c0af8..190752a3ca 100644
--- a/src/library/scala/collection/parallel/ParIterableLike.scala
+++ b/src/library/scala/collection/parallel/ParIterableLike.scala
@@ -520,11 +520,11 @@ self =>
executeAndWaitResult(new Partition(pred, cbfactory, parallelIterator) mapResult { p => (p._1.result, p._2.result) })
}
- // override def groupBy[K](f: T => K): immutable.ParMap[K, Repr] = {
- // executeAndWaitResult(new GroupBy(f, () => HashMapCombiner[K, T], parallelIterator) mapResult {
- // rcb => rcb.groupByKey(cbfactory)
- // })
- // }
+ override def groupBy[K](f: T => K): immutable.ParMap[K, Repr] = {
+ executeAndWaitResult(new GroupBy(f, () => HashMapCombiner[K, T], parallelIterator) mapResult {
+ rcb => rcb.groupByKey(cbfactory)
+ })
+ }
override def take(n: Int): Repr = {
val actualn = if (size > n) n else size
diff --git a/src/library/scala/collection/parallel/ParSeqViewLike.scala b/src/library/scala/collection/parallel/ParSeqViewLike.scala
index 1b5ae06c42..7b564a9ad4 100644
--- a/src/library/scala/collection/parallel/ParSeqViewLike.scala
+++ b/src/library/scala/collection/parallel/ParSeqViewLike.scala
@@ -160,7 +160,7 @@ self =>
override def collect[S, That](pf: PartialFunction[T, S])(implicit bf: CanBuildFrom[This, S, That]): That = filter(pf.isDefinedAt).map(pf)(bf)
override def scanLeft[S, That](z: S)(op: (S, T) => S)(implicit bf: CanBuildFrom[This, S, That]): That = newForced(thisParSeq.scanLeft(z)(op)).asInstanceOf[That]
override def scanRight[S, That](z: S)(op: (T, S) => S)(implicit bf: CanBuildFrom[This, S, That]): That = newForced(thisParSeq.scanRight(z)(op)).asInstanceOf[That]
- override def groupBy[K](f: T => K): collection.immutable.Map[K, This] = thisParSeq.groupBy(f).mapValues(xs => newForced(xs).asInstanceOf[This])
+ override def groupBy[K](f: T => K): immutable.ParMap[K, This] = thisParSeq.groupBy(f).map(kv => (kv._1, newForced(kv._2).asInstanceOf[This]))
override def force[U >: T, That](implicit bf: CanBuildFrom[Coll, U, That]) = bf ifParallel { pbf =>
executeAndWaitResult(new Force(pbf, parallelIterator).mapResult(_.result).asInstanceOf[Task[That, _]])
} otherwise {