public class ProcessThread extends PtolemyThread
In process oriented domains, each actor acts as a separate process and its execution is not centrally controlled by the director. Each process runs concurrently with other processes and is responsible for calling its execution methods.
This class provides the mechanism to implement the above. An instance of this class can be created by passing an actor as an argument to the constructor. This class runs as a separate thread on being started and calls the execution methods on the actor, repeatedly. Specifically, it calls initialize(), and then repeatedly calls the prefire(), fire() and postfire() methods of the actor. Before termination, this calls the wrapup() method of the actor.
If an actor returns false in its postfire() methods, the actor is never fired again and the thread or process terminates after calling wrapup() on the actor.
An instance of this class is associated with an instance of ProcessDirector as well as an instance of Actor. The _increaseActiveCount() of the director is called from the constructor of this class, and the _decreaseActiveCount() method is called at the end of the run() method, just before the thread terminates.
Modifier and Type | Field and Description |
---|---|
protected Actor |
_actor
The actor that to be executed.
|
protected ProcessDirector |
_director
The director responsible for the execution of the actor.
|
protected Manager |
_manager
The Manager of the actor.
|
_debugging, _debugListeners
Constructor and Description |
---|
ProcessThread(Actor actor,
ProcessDirector director)
Construct a thread to be used for the execution of the
iteration methods of the actor.
|
Modifier and Type | Method and Description |
---|---|
protected void |
_actorInitialized()
Notify that the actor has been initialized.
|
protected boolean |
_iterateActor()
Iterate the actor associate with this thread.
|
Actor |
getActor()
Return the actor being executed by this thread.
|
void |
run()
Initialize the actor, iterate it through the execution cycle
until it terminates.
|
void |
wrapup()
End the execution of the actor under the control of this
thread.
|
_debug, _debug, addDebugListener, removeDebugListener
activeCount, checkAccess, clone, countStackFrames, currentThread, destroy, dumpStack, enumerate, getAllStackTraces, getContextClassLoader, getDefaultUncaughtExceptionHandler, getId, getName, getPriority, getStackTrace, getState, getThreadGroup, getUncaughtExceptionHandler, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, setContextClassLoader, setDaemon, setDefaultUncaughtExceptionHandler, setName, setPriority, setUncaughtExceptionHandler, sleep, sleep, start, stop, stop, suspend, toString, yield
protected Actor _actor
protected ProcessDirector _director
protected Manager _manager
public ProcessThread(Actor actor, ProcessDirector director)
actor
- The actor to be executed.director
- The director responsible for the execution of
the actor.public Actor getActor()
public void run()
run
in interface java.lang.Runnable
run
in class java.lang.Thread
public void wrapup() throws IllegalActionException
IllegalActionException
- If an error occurs while
ending execution of the actor under the control of this
thread.protected void _actorInitialized()
protected boolean _iterateActor() throws IllegalActionException
IllegalActionException
- If the actor throws it.