summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/parallel/immutable/ParRange.scala
diff options
context:
space:
mode:
authorAleksandar Prokopec <axel22@gmail.com>2012-02-01 18:24:50 +0100
committerAleksandar Prokopec <axel22@gmail.com>2012-02-01 18:24:50 +0100
commit8aa87f15e3887dbeb1a39bfea002b56cf68c445a (patch)
treeeb76514b57160e1b7cbd2df0e009cbcdc2a5f922 /src/library/scala/collection/parallel/immutable/ParRange.scala
parentfe289dc0fd8172012e4d57d09658e2dfd0a4cdcf (diff)
downloadscala-8aa87f15e3887dbeb1a39bfea002b56cf68c445a.tar.gz
scala-8aa87f15e3887dbeb1a39bfea002b56cf68c445a.tar.bz2
scala-8aa87f15e3887dbeb1a39bfea002b56cf68c445a.zip
Remove ParIterator and SignalContextPassingIterator.
This unclutters the namespace and makes defining custom parallel collections a lot easier.
Diffstat (limited to 'src/library/scala/collection/parallel/immutable/ParRange.scala')
-rw-r--r--src/library/scala/collection/parallel/immutable/ParRange.scala18
1 files changed, 8 insertions, 10 deletions
diff --git a/src/library/scala/collection/parallel/immutable/ParRange.scala b/src/library/scala/collection/parallel/immutable/ParRange.scala
index 350e64739f..64e07ce4ff 100644
--- a/src/library/scala/collection/parallel/immutable/ParRange.scala
+++ b/src/library/scala/collection/parallel/immutable/ParRange.scala
@@ -10,6 +10,7 @@ package scala.collection.parallel.immutable
import scala.collection.immutable.Range
import scala.collection.parallel.Combiner
+import scala.collection.parallel.SeqSplitter
import scala.collection.generic.CanCombineFrom
import scala.collection.parallel.IterableSplitter
import scala.collection.Iterator
@@ -41,13 +42,10 @@ self =>
@inline final def apply(idx: Int) = range.apply(idx);
- def splitter = new ParRangeIterator with SCPI
-
- type SCPI = SignalContextPassingIterator[ParRangeIterator]
+ def splitter = new ParRangeIterator
class ParRangeIterator(range: Range = self.range)
- extends ParIterator {
- me: SignalContextPassingIterator[ParRangeIterator] =>
+ extends SeqSplitter[Int] {
override def toString = "ParRangeIterator(over: " + range + ")"
private var ind = 0
private val len = range.length
@@ -64,15 +62,15 @@ self =>
private def rangeleft = range.drop(ind)
- def dup = new ParRangeIterator(rangeleft) with SCPI
+ def dup = new ParRangeIterator(rangeleft)
def split = {
val rleft = rangeleft
val elemleft = rleft.length
- if (elemleft < 2) Seq(new ParRangeIterator(rleft) with SCPI)
+ if (elemleft < 2) Seq(new ParRangeIterator(rleft))
else Seq(
- new ParRangeIterator(rleft.take(elemleft / 2)) with SCPI,
- new ParRangeIterator(rleft.drop(elemleft / 2)) with SCPI
+ new ParRangeIterator(rleft.take(elemleft / 2)),
+ new ParRangeIterator(rleft.drop(elemleft / 2))
)
}
@@ -81,7 +79,7 @@ self =>
for (sz <- sizes) yield {
val fronttaken = rleft.take(sz)
rleft = rleft.drop(sz)
- new ParRangeIterator(fronttaken) with SCPI
+ new ParRangeIterator(fronttaken)
}
}