Root node for FJRemoveAll. Spawns subtasks and shifts elements as indices become available, bypassing index array creation when offsets are known. This differs from SelectAll mainly in that data movement is all done by the driver rather than in a second parallel pass.
Constructor and description |
---|
PAS.FJRemoveAllDriver
(AbstractParallelAnyArray pap, int lo, int hi) |
Type | Name and description |
---|---|
void |
compute() |
static int |
inorderMove(FJRemoveAll t, int index) Inorder traversal to move indexed elements across reachable nodes. |
Methods inherited from class | Name |
---|---|
class jsr166y.RecursiveAction |
jsr166y.RecursiveAction#getRawResult(), jsr166y.RecursiveAction#getRawResult(), jsr166y.RecursiveAction#invokeAll(java.util.Collection), jsr166y.RecursiveAction#invokeAll(jsr166y.ForkJoinTask, jsr166y.ForkJoinTask), jsr166y.RecursiveAction#invokeAll([Ljsr166y.ForkJoinTask;), jsr166y.RecursiveAction#isDone(), jsr166y.RecursiveAction#isCancelled(), jsr166y.RecursiveAction#getPool(), jsr166y.RecursiveAction#complete(java.lang.Object), jsr166y.RecursiveAction#cancel(boolean), jsr166y.RecursiveAction#adapt(java.lang.Runnable, java.lang.Object), jsr166y.RecursiveAction#adapt(java.lang.Runnable), jsr166y.RecursiveAction#adapt(java.util.concurrent.Callable), jsr166y.RecursiveAction#isCompletedAbnormally(), jsr166y.RecursiveAction#isCompletedNormally(), jsr166y.RecursiveAction#completeExceptionally(java.lang.Throwable), jsr166y.RecursiveAction#quietlyJoin(), jsr166y.RecursiveAction#quietlyInvoke(), jsr166y.RecursiveAction#helpQuiesce(), jsr166y.RecursiveAction#reinitialize(), jsr166y.RecursiveAction#inForkJoinPool(), jsr166y.RecursiveAction#tryUnfork(), jsr166y.RecursiveAction#getQueuedTaskCount(), jsr166y.RecursiveAction#getSurplusQueuedTaskCount(), jsr166y.RecursiveAction#fork(), jsr166y.RecursiveAction#invoke(), jsr166y.RecursiveAction#get(), jsr166y.RecursiveAction#get(long, java.util.concurrent.TimeUnit), jsr166y.RecursiveAction#getException(), jsr166y.RecursiveAction#join(), jsr166y.RecursiveAction#wait(long, int), jsr166y.RecursiveAction#wait(long), jsr166y.RecursiveAction#wait(), jsr166y.RecursiveAction#equals(java.lang.Object), jsr166y.RecursiveAction#toString(), jsr166y.RecursiveAction#hashCode(), jsr166y.RecursiveAction#getClass(), jsr166y.RecursiveAction#notify(), jsr166y.RecursiveAction#notifyAll() |
class jsr166y.ForkJoinTask |
jsr166y.ForkJoinTask#invokeAll(java.util.Collection), jsr166y.ForkJoinTask#invokeAll(jsr166y.ForkJoinTask, jsr166y.ForkJoinTask), jsr166y.ForkJoinTask#invokeAll([Ljsr166y.ForkJoinTask;), jsr166y.ForkJoinTask#isDone(), jsr166y.ForkJoinTask#isCancelled(), jsr166y.ForkJoinTask#getPool(), jsr166y.ForkJoinTask#complete(java.lang.Object), jsr166y.ForkJoinTask#cancel(boolean), jsr166y.ForkJoinTask#adapt(java.lang.Runnable, java.lang.Object), jsr166y.ForkJoinTask#adapt(java.lang.Runnable), jsr166y.ForkJoinTask#adapt(java.util.concurrent.Callable), jsr166y.ForkJoinTask#isCompletedAbnormally(), jsr166y.ForkJoinTask#isCompletedNormally(), jsr166y.ForkJoinTask#completeExceptionally(java.lang.Throwable), jsr166y.ForkJoinTask#quietlyJoin(), jsr166y.ForkJoinTask#quietlyInvoke(), jsr166y.ForkJoinTask#helpQuiesce(), jsr166y.ForkJoinTask#reinitialize(), jsr166y.ForkJoinTask#inForkJoinPool(), jsr166y.ForkJoinTask#tryUnfork(), jsr166y.ForkJoinTask#getQueuedTaskCount(), jsr166y.ForkJoinTask#getSurplusQueuedTaskCount(), jsr166y.ForkJoinTask#fork(), jsr166y.ForkJoinTask#getRawResult(), jsr166y.ForkJoinTask#invoke(), jsr166y.ForkJoinTask#get(), jsr166y.ForkJoinTask#get(long, java.util.concurrent.TimeUnit), jsr166y.ForkJoinTask#getException(), jsr166y.ForkJoinTask#join(), jsr166y.ForkJoinTask#wait(long, int), jsr166y.ForkJoinTask#wait(long), jsr166y.ForkJoinTask#wait(), jsr166y.ForkJoinTask#equals(java.lang.Object), jsr166y.ForkJoinTask#toString(), jsr166y.ForkJoinTask#hashCode(), jsr166y.ForkJoinTask#getClass(), jsr166y.ForkJoinTask#notify(), jsr166y.ForkJoinTask#notifyAll() |
Inorder traversal to move indexed elements across reachable nodes. This guarantees that element shifts don't overwrite those still being used by active subtasks.
Copyright © 2008–2013 Václav Pech. All Rights Reserved.