Class RunnableTask

  • All Implemented Interfaces:
    Runnable

    public class RunnableTask
    extends TaskBase
    Helper class to provide a Runnable queue implementation with a Runnable wrapper which notifies after execution for the invokeAndWait() semantics.
    • Field Detail

      • runnable

        protected final Runnable runnable
    • Constructor Detail

      • RunnableTask

        public RunnableTask​(Runnable runnable,
                            Object syncObject,
                            boolean catchExceptions,
                            PrintStream exceptionOut)
        Create a RunnableTask object w/ synchronization, ie. suitable for invokeAndWait(), i.e. invoke(true, runnable).
        Parameters:
        runnable - The user action
        syncObject - The synchronization object if caller wait until runnable execution is completed, or null if waiting is not desired.
        catchExceptions - Influence an occurring exception during runnable execution. If true, the exception is silenced and can be retrieved via TaskBase.getThrowable(), otherwise the exception is thrown.
        exceptionOut - If not null, exceptions are written to this PrintStream.
    • Method Detail

      • invokeOnCurrentThread

        public static RunnableTask invokeOnCurrentThread​(Runnable runnable)
        Invokes runnable on the current Thread.
        Parameters:
        runnable - the Runnable to execute on the current thread. The runnable must exit, i.e. not loop forever.
        Returns:
        the newly created and invoked RunnableTask
        Since:
        2.4.0
      • invokeOnNewThread

        public static RunnableTask invokeOnNewThread​(ThreadGroup tg,
                                                     String threadName,
                                                     boolean waitUntilDone,
                                                     Runnable runnable)
        Invokes runnable on a new InterruptSource.Thread, see Thread(ThreadGroup, Runnable, String) for details.
        Parameters:
        tg - the ThreadGroup for the new thread, maybe null
        threadName - the name for the new thread, maybe null
        waitUntilDone - if true, waits until runnable execution is completed, otherwise returns immediately.
        runnable - the Runnable to execute on the new thread. If waitUntilDone is true, the runnable must exit, i.e. not loop forever.
        Returns:
        the newly created and invoked RunnableTask
        Since:
        2.3.2
      • getRunnable

        public final Runnable getRunnable()
        Return the user action
      • run

        public final void run()
        Specified by:
        run in interface Runnable
        Specified by:
        run in class TaskBase