static final class ForkJoinPool.WorkQueue
extends java.lang.Object
Modifier and Type | Field and Description |
---|---|
private static int |
ABASE |
(package private) ForkJoinTask<?>[] |
array |
private static int |
ASHIFT |
(package private) int |
base |
(package private) ForkJoinTask<?> |
currentJoin |
(package private) ForkJoinTask<?> |
currentSteal |
(package private) int |
eventCount |
(package private) int |
hint |
(package private) static int |
INITIAL_QUEUE_CAPACITY
Capacity of work-stealing queue array upon initialization.
|
(package private) static int |
MAXIMUM_QUEUE_CAPACITY
Maximum size for queue arrays.
|
(package private) int |
mode |
(package private) int |
nextWait |
(package private) int |
nsteals |
(package private) ForkJoinWorkerThread |
owner |
(package private) long |
pad00 |
(package private) long |
pad01 |
(package private) long |
pad02 |
(package private) long |
pad03 |
(package private) long |
pad04 |
(package private) long |
pad05 |
(package private) long |
pad06 |
(package private) java.lang.Object |
pad10 |
(package private) java.lang.Object |
pad11 |
(package private) java.lang.Object |
pad12 |
(package private) java.lang.Object |
pad13 |
(package private) java.lang.Object |
pad14 |
(package private) java.lang.Object |
pad15 |
(package private) java.lang.Object |
pad16 |
(package private) java.lang.Object |
pad17 |
(package private) java.lang.Object |
pad18 |
(package private) java.lang.Object |
pad19 |
(package private) java.lang.Object |
pad1a |
(package private) java.lang.Object |
pad1b |
(package private) java.lang.Object |
pad1c |
(package private) java.lang.Object |
pad1d |
(package private) java.lang.Thread |
parker |
(package private) ForkJoinPool |
pool |
(package private) int |
poolIndex |
(package private) int |
qlock |
private static long |
QLOCK |
(package private) int |
seed |
(package private) int |
top |
private static sun.misc.Unsafe |
U |
Constructor and Description |
---|
ForkJoinPool.WorkQueue(ForkJoinPool pool,
ForkJoinWorkerThread owner,
int mode,
int seed) |
Modifier and Type | Method and Description |
---|---|
(package private) void |
cancelAll()
Removes and cancels all known tasks, ignoring any exceptions.
|
(package private) ForkJoinTask<?>[] |
growArray()
Initializes or doubles the capacity of array.
|
(package private) boolean |
isApparentlyUnblocked()
Returns true if owned and not known to be blocked.
|
(package private) boolean |
isEmpty()
Provides a more accurate estimate of whether this queue has
any tasks than does queueSize, by checking whether a
near-empty queue has at least one unclaimed task.
|
(package private) ForkJoinTask<?> |
nextLocalTask()
Takes next task, if one exists, in order specified by mode.
|
(package private) int |
nextSeed()
Computes next value for random probes.
|
(package private) ForkJoinTask<?> |
peek()
Returns next task, if one exists, in order specified by mode.
|
(package private) ForkJoinTask<?> |
poll()
Takes next task, if one exists, in FIFO order.
|
private void |
pollAndExecAll()
Polls and runs tasks until empty.
|
(package private) boolean |
pollAndExecCC(ForkJoinTask<?> root)
Polls for and executes the given task or any other task in
its CountedCompleter computation.
|
(package private) ForkJoinTask<?> |
pollAt(int b)
Takes a task in FIFO order if b is base of queue and a task
can be claimed without contention.
|
(package private) ForkJoinTask<?> |
pop()
Takes next task, if one exists, in LIFO order.
|
private void |
popAndExecAll()
Pops and runs tasks until empty.
|
(package private) void |
push(ForkJoinTask<?> task)
Pushes a task.
|
(package private) int |
queueSize()
Returns the approximate number of tasks in the queue.
|
(package private) void |
runSubtask(ForkJoinTask<?> t)
Executes a non-top-level (stolen) task.
|
(package private) void |
runTask(ForkJoinTask<?> t)
Executes a top-level task and any local tasks remaining
after execution.
|
(package private) boolean |
tryRemoveAndExec(ForkJoinTask<?> task)
If present, removes from queue and executes the given task,
or any other cancelled task.
|
(package private) boolean |
tryUnpush(ForkJoinTask<?> t)
Pops the given task only if it is at the current top.
|
static final int INITIAL_QUEUE_CAPACITY
static final int MAXIMUM_QUEUE_CAPACITY
volatile long pad00
volatile long pad01
volatile long pad02
volatile long pad03
volatile long pad04
volatile long pad05
volatile long pad06
int seed
volatile int eventCount
int nextWait
int hint
int poolIndex
final int mode
int nsteals
volatile int qlock
volatile int base
int top
ForkJoinTask<?>[] array
final ForkJoinPool pool
final ForkJoinWorkerThread owner
volatile java.lang.Thread parker
volatile ForkJoinTask<?> currentJoin
ForkJoinTask<?> currentSteal
volatile java.lang.Object pad10
volatile java.lang.Object pad11
volatile java.lang.Object pad12
volatile java.lang.Object pad13
volatile java.lang.Object pad14
volatile java.lang.Object pad15
volatile java.lang.Object pad16
volatile java.lang.Object pad17
volatile java.lang.Object pad18
volatile java.lang.Object pad19
volatile java.lang.Object pad1a
volatile java.lang.Object pad1b
volatile java.lang.Object pad1c
volatile java.lang.Object pad1d
private static final sun.misc.Unsafe U
private static final long QLOCK
private static final int ABASE
private static final int ASHIFT
ForkJoinPool.WorkQueue(ForkJoinPool pool, ForkJoinWorkerThread owner, int mode, int seed)
final int queueSize()
final boolean isEmpty()
final void push(ForkJoinTask<?> task)
task
- the task. Caller must ensure non-null.java.util.concurrent.RejectedExecutionException
- if array cannot be resizedfinal ForkJoinTask<?>[] growArray()
final ForkJoinTask<?> pop()
final ForkJoinTask<?> pollAt(int b)
final ForkJoinTask<?> poll()
final ForkJoinTask<?> nextLocalTask()
final ForkJoinTask<?> peek()
final boolean tryUnpush(ForkJoinTask<?> t)
final void cancelAll()
final int nextSeed()
private void popAndExecAll()
private void pollAndExecAll()
final boolean tryRemoveAndExec(ForkJoinTask<?> task)
final boolean pollAndExecCC(ForkJoinTask<?> root)
final void runTask(ForkJoinTask<?> t)
final void runSubtask(ForkJoinTask<?> t)
final boolean isApparentlyUnblocked()