diff options
author | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-11-25 17:16:53 +0000 |
---|---|---|
committer | Aleksandar Pokopec <aleksandar.prokopec@epfl.ch> | 2010-11-25 17:16:53 +0000 |
commit | a16bba97a013cc7cb8bb7fa8815b4683efa4324a (patch) | |
tree | 0cf15ebddd3cba4caf07c30ef759e1a63b134a2b /src/library/scala/collection/mutable/ArraySeq.scala | |
parent | fcc17475480627b41ec8f67da99a5ddd5617ddb0 (diff) | |
download | scala-a16bba97a013cc7cb8bb7fa8815b4683efa4324a.tar.gz scala-a16bba97a013cc7cb8bb7fa8815b4683efa4324a.tar.bz2 scala-a16bba97a013cc7cb8bb7fa8815b4683efa4324a.zip |
Added toParIterable, toParSeq, toParSet and toP...
Added toParIterable, toParSeq, toParSet and toParMap conversions.
No review.
Diffstat (limited to 'src/library/scala/collection/mutable/ArraySeq.scala')
-rw-r--r-- | src/library/scala/collection/mutable/ArraySeq.scala | 20 |
1 files changed, 15 insertions, 5 deletions
diff --git a/src/library/scala/collection/mutable/ArraySeq.scala b/src/library/scala/collection/mutable/ArraySeq.scala index 3fc45eaa5f..91bc864224 100644 --- a/src/library/scala/collection/mutable/ArraySeq.scala +++ b/src/library/scala/collection/mutable/ArraySeq.scala @@ -12,6 +12,7 @@ package scala.collection package mutable import generic._ +import parallel.mutable.ParArray /** A class for polymorphic arrays of elements that's represented * internally by an array of objects. This means that elements of @@ -42,12 +43,16 @@ import generic._ class ArraySeq[A](override val length: Int) extends IndexedSeq[A] with GenericTraversableTemplate[A, ArraySeq] - with IndexedSeqOptimized[A, ArraySeq[A]] { + with IndexedSeqOptimized[A, ArraySeq[A]] + with Parallelizable[ParArray[A]] +{ override def companion: GenericCompanion[ArraySeq] = ArraySeq val array: Array[AnyRef] = new Array[AnyRef](length) + def par = ParArray.handoff(array.asInstanceOf[Array[A]]) + def apply(idx: Int): A = { if (idx >= length) throw new IndexOutOfBoundsException(idx.toString) array(idx).asInstanceOf[A] @@ -75,10 +80,15 @@ extends IndexedSeq[A] * @param start starting index. * @param len number of elements to copy */ - override def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) { - val len1 = len min (xs.length - start) min length - Array.copy(array, 0, xs, start, len1) - } + override def copyToArray[B >: A](xs: Array[B], start: Int, len: Int) { + val len1 = len min (xs.length - start) min length + Array.copy(array, 0, xs, start, len1) + } + + override def toParIterable = par + + override def toParSeq = par + } /** $factoryInfo |