|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectpt.runtime.AbstractTaskPool
public abstract class AbstractTaskPool
Field Summary | |
---|---|
protected static java.util.Comparator<TaskID<?>> |
FIFO_TaskID_Comparator
|
protected java.util.concurrent.PriorityBlockingQueue<TaskID<?>> |
globalTaskqueue
|
protected static int |
INITIAL_QUEUE_CAPACITY
|
protected java.lang.ThreadLocal<java.lang.Integer> |
lastStolenFrom
|
protected static java.util.Comparator<TaskID<?>> |
LIFO_TaskID_Comparator
|
protected java.util.Deque<TaskID<?>>[] |
localQueues
|
protected FifoLifoQueue<TaskID<?>> |
mixedQueue
|
protected static int |
NOT_STOLEN
|
protected int |
numThreads
|
protected java.util.AbstractQueue<TaskID<?>>[] |
privateQueues
|
protected java.util.concurrent.ConcurrentHashMap<TaskID<?>,java.lang.Object> |
waitingTasks
|
protected WorkerThread[] |
workers
|
Constructor Summary | |
---|---|
protected |
AbstractTaskPool()
|
Method Summary | |
---|---|
TaskID |
enqueue(TaskInfo taskinfo)
Enqueues the specified task, whose information is contained in the TaskInfo. |
TaskIDGroup |
enqueueMulti(TaskInfo taskinfo,
int count)
Enqueues the specified TaskInfo as a multi-task, creates "count" inner tasks and places them in a TaskIDGroup which is then returned. |
protected abstract void |
enqueueReadyTask(TaskID<?> taskID)
|
protected void |
enqueueWaitingTask(TaskID taskID,
java.util.ArrayList<TaskID> allDependences)
|
boolean |
executeSynchronously(int cutoff)
|
int |
getActiveInteractiveTaskCount()
Returns the count of currently active interactive tasks. |
protected abstract void |
initialise()
|
protected void |
initialiseWorkerThreads()
|
void |
interactiveTaskCompleted(TaskID<?> taskID)
Used to decrement the count of interactive tasks |
void |
nowReady(TaskID<?> waiter)
The specified task is currently on the waiting queue since it has some dependences. |
void |
printDebugInfo()
|
protected void |
startInteractiveTask(TaskID taskID)
|
protected void |
startPipelineTask(TaskID taskID)
|
int |
totalNumTasksExecuted()
|
abstract TaskID |
workerPollNextTask()
The worker thread polls the task pool for a task.. |
TaskID |
workerTakeNextTask()
The worker thread blocks until it gets a task to execute. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
Field Detail |
---|
protected static final int INITIAL_QUEUE_CAPACITY
protected static final java.util.Comparator<TaskID<?>> FIFO_TaskID_Comparator
protected static final java.util.Comparator<TaskID<?>> LIFO_TaskID_Comparator
protected int numThreads
protected WorkerThread[] workers
protected java.util.concurrent.ConcurrentHashMap<TaskID<?>,java.lang.Object> waitingTasks
protected java.util.concurrent.PriorityBlockingQueue<TaskID<?>> globalTaskqueue
protected FifoLifoQueue<TaskID<?>> mixedQueue
protected java.util.AbstractQueue<TaskID<?>>[] privateQueues
protected java.util.Deque<TaskID<?>>[] localQueues
protected java.lang.ThreadLocal<java.lang.Integer> lastStolenFrom
protected static final int NOT_STOLEN
Constructor Detail |
---|
protected AbstractTaskPool()
Method Detail |
---|
protected abstract void enqueueReadyTask(TaskID<?> taskID)
public abstract TaskID workerPollNextTask()
Taskpool
workerPollNextTask
in interface Taskpool
protected abstract void initialise()
public TaskID enqueue(TaskInfo taskinfo)
Taskpool
enqueue
in interface Taskpool
public TaskIDGroup enqueueMulti(TaskInfo taskinfo, int count)
Taskpool
enqueueMulti
in interface Taskpool
public TaskID workerTakeNextTask()
Taskpool
workerTakeNextTask
in interface Taskpool
public int getActiveInteractiveTaskCount()
Taskpool
getActiveInteractiveTaskCount
in interface Taskpool
public void interactiveTaskCompleted(TaskID<?> taskID)
Taskpool
interactiveTaskCompleted
in interface Taskpool
taskID
- The task that has just completedprotected void startInteractiveTask(TaskID taskID)
protected void startPipelineTask(TaskID taskID)
protected void enqueueWaitingTask(TaskID taskID, java.util.ArrayList<TaskID> allDependences)
public void nowReady(TaskID<?> waiter)
Taskpool
nowReady
in interface Taskpool
protected void initialiseWorkerThreads()
public boolean executeSynchronously(int cutoff)
executeSynchronously
in interface Taskpool
public void printDebugInfo()
printDebugInfo
in interface Taskpool
public int totalNumTasksExecuted()
totalNumTasksExecuted
in interface Taskpool
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |