Package com.jogamp.common.util
Class TaskBase
- java.lang.Object
-
- com.jogamp.common.util.TaskBase
-
- All Implemented Interfaces:
Runnable
- Direct Known Subclasses:
FunctionTask,RunnableTask
public abstract class TaskBase extends Object implements Runnable
Helper class to provide a Runnable queue implementation with a Runnable wrapper which notifies after execution for theinvokeAndWait()semantics.
-
-
Field Summary
Fields Modifier and Type Field Description protected Objectattachmentprotected booleancatchExceptionsprotected PrintStreamexceptionOutprotected ThreadexecThreadprotected booleanisExecutedprotected booleanisFlushedprotected ThrowablerunnableExceptionprotected ThrowablesourceStackprotected ObjectsyncObjectprotected longtCreatedprotected longtExecutedprotected longtStarted
-
Constructor Summary
Constructors Modifier Constructor Description protectedTaskBase(Object syncObject, boolean catchExceptions, PrintStream exceptionOut)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description voidflush(Throwable t)Simply flush this task and notify a waiting executor.ObjectgetAttachment()Return the attachment object if any.longgetDurationInExec()longgetDurationInQueue()longgetDurationTotal()protected StringgetExceptionOutIntro()ThreadgetExecutionThread()Returns the execution thread ornullif not yetrun().ObjectgetSyncObject()Return the synchronization object if any.ThrowablegetThrowable()longgetTimestampAfterExec()longgetTimestampBeforeExec()longgetTimestampCreate()booleanhasWaiter()booleanisExecuted()booleanisFlushed()booleanisInQueue()protected voidprintSourceTrace()abstract voidrun()voidsetAttachment(Object o)Attach a custom object to this task.StringtoString()
-
-
-
Field Detail
-
syncObject
protected final Object syncObject
-
catchExceptions
protected final boolean catchExceptions
-
exceptionOut
protected final PrintStream exceptionOut
-
sourceStack
protected final Throwable sourceStack
-
attachment
protected Object attachment
-
runnableException
protected Throwable runnableException
-
tCreated
protected long tCreated
-
tStarted
protected long tStarted
-
tExecuted
protected volatile long tExecuted
-
isExecuted
protected volatile boolean isExecuted
-
isFlushed
protected volatile boolean isFlushed
-
execThread
protected volatile Thread execThread
-
-
Constructor Detail
-
TaskBase
protected TaskBase(Object syncObject, boolean catchExceptions, PrintStream exceptionOut)
- Parameters:
syncObject- The synchronization object if caller wait untilrunnableexecution is completed, ornullif waiting is not desired.catchExceptions- Influence an occurring exception duringrunnableexecution. Iftrue, the exception is silenced and can be retrieved viagetThrowable(), otherwise the exception is thrown.exceptionOut- If notnull, exceptions are written to thisPrintStream.
-
-
Method Detail
-
getExceptionOutIntro
protected final String getExceptionOutIntro()
-
printSourceTrace
protected final void printSourceTrace()
-
getExecutionThread
public final Thread getExecutionThread()
Returns the execution thread ornullif not yetrun().- Since:
- 2.3.2
-
getSyncObject
public final Object getSyncObject()
Return the synchronization object if any.- See Also:
#RunnableTask(Runnable, Object, boolean)
-
setAttachment
public final void setAttachment(Object o)
Attach a custom object to this task. Useful to piggybag further information, ie tag a task final.
-
getAttachment
public final Object getAttachment()
Return the attachment object if any.- See Also:
setAttachment(Object)
-
flush
public final void flush(Throwable t)
Simply flush this task and notify a waiting executor. The executor which might have been blocked until notified will be unblocked and the task removed from the queue.- Parameters:
t- optional Throwable to be assigned for latergetThrowable()query in case of an error.- See Also:
isFlushed(),isInQueue()
-
isInQueue
public final boolean isInQueue()
- Returns:
- !
isExecuted()&& !isFlushed()
-
isExecuted
public final boolean isExecuted()
- Returns:
- True if executed, otherwise false;
-
isFlushed
public final boolean isFlushed()
- Returns:
- True if flushed, otherwise false;
-
hasWaiter
public final boolean hasWaiter()
- Returns:
- True if invoking thread waits until done,
ie a
notifyObjectwas passed, otherwise false;
-
getThrowable
public final Throwable getThrowable()
- Returns:
- A thrown exception while execution of the user action, if any and if caught
- See Also:
#RunnableTask(Runnable, Object, boolean)
-
getTimestampCreate
public final long getTimestampCreate()
-
getTimestampBeforeExec
public final long getTimestampBeforeExec()
-
getTimestampAfterExec
public final long getTimestampAfterExec()
-
getDurationInQueue
public final long getDurationInQueue()
-
getDurationInExec
public final long getDurationInExec()
-
getDurationTotal
public final long getDurationTotal()
-
-