summaryrefslogtreecommitdiff
path: root/src/library/scala/collection/mutable/ArraySeq.scala
diff options
context:
space:
mode:
authorAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-11-25 17:16:53 +0000
committerAleksandar Pokopec <aleksandar.prokopec@epfl.ch>2010-11-25 17:16:53 +0000
commita16bba97a013cc7cb8bb7fa8815b4683efa4324a (patch)
tree0cf15ebddd3cba4caf07c30ef759e1a63b134a2b /src/library/scala/collection/mutable/ArraySeq.scala
parentfcc17475480627b41ec8f67da99a5ddd5617ddb0 (diff)
downloadscala-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.scala20
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