edu.rice.cs.plt.concurrent
Class ExecutorTaskController<R>
java.lang.Object
edu.rice.cs.plt.concurrent.TaskController<R>
edu.rice.cs.plt.concurrent.ExecutorTaskController<R>
- All Implemented Interfaces:
- ResolvingThunk<R>, Thunk<R>, Future<R>
public class ExecutorTaskController<R>
- extends TaskController<R>
A TaskController for a simple task, which is scheduled for execution by an Executor. To support
canceling, the task should respond to an interrupt by throwing an InterruptedException, wrapped by a
WrappedException. The task is submitted (via Executor.execute(java.lang.Runnable)) when start() is
invoked (if the executor blocks, so will start()); its status is changed to "running" when it
actually begins executing; if canceled in the interim, the status will still be "paused" until the
task begins its scheduled execution.
| Nested classes/interfaces inherited from class edu.rice.cs.plt.concurrent.TaskController |
TaskController.CanceledStartingState, TaskController.CanceledState, TaskController.CancelingState, TaskController.CleanlyFinishedState, TaskController.ComputingState, TaskController.ExecutionExceptionState, TaskController.FinishedState, TaskController.FreshStartingState, TaskController.FreshState, TaskController.InternalExceptionState, TaskController.RunningState, TaskController.StartingState, TaskController.State, TaskController.Status, TaskController.WaitingState |
| Methods inherited from class edu.rice.cs.plt.concurrent.TaskController |
attemptGet, attemptGet, cancel, cancel, finishedCleanly, finishedWithImplementationException, finishedWithTaskException, finishListeners, get, get, get, hasValue, isCanceled, isCancelled, isDone, isResolved, runningState, start, started, status, stopped, value |
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
ExecutorTaskController
public ExecutorTaskController(Executor executor,
Thunk<? extends R> task)
doStart
protected void doStart()
- Description copied from class:
TaskController
- Begin computation and call
TaskController.started(). If starting does not occur immediately (for example,
blocking occurs first), the started() call may occur in a different thread.
- Specified by:
doStart in class TaskController<R>
doStop
protected void doStop()
- Description copied from class:
TaskController
- Terminate computation and call
TaskController.stopped(). Never called before started() has been
invoked. If termination does not occur immediately (for example, blocking occurs first), the
stopped() call may occur in a different thread.
- Specified by:
doStop in class TaskController<R>
discard
protected void discard()
- Description copied from class:
TaskController
- Clean up after the task has completed. Called whenever the task enters a canceled or finished
state (for example, when
finishedCleanly() has been called, or when cancel() is
invoked on a PAUSED controller). By default, does nothing, but can be overridden to close
connections or throw away unnecessary objects. (Where TaskControllers live far beyond their computation
life span (as simple wrappers for a value), this allows objects related to the computation to be
garbage-collected in the interim.)
- Overrides:
discard in class TaskController<R>