Enum Class Invocable.InvocationType

java.lang.Object
java.lang.Enum<Invocable.InvocationType>
org.eclipse.jetty.util.thread.Invocable.InvocationType
All Implemented Interfaces:
Serializable, Comparable<Invocable.InvocationType>, Constable
Enclosing interface:
Invocable

public static enum Invocable.InvocationType extends Enum<Invocable.InvocationType>

The behavior of an Invocable when it is invoked.

Typically, Runnables or Callbacks declare their invocation type; this information is then used by the code that should invoke the Runnable or Callback to decide whether to invoke it directly, or submit it to a thread pool to be invoked by a different thread.

  • Enum Constant Details

    • BLOCKING

      public static final Invocable.InvocationType BLOCKING

      Invoking the Invocable may block the invoker thread, and the invocation may be performed immediately (possibly blocking the invoker thread) or deferred to a later time, for example by submitting the Invocable to a thread pool.

      This invocation type is suitable for Invocables that call application code, for example to process an HTTP request.

    • NON_BLOCKING

      public static final Invocable.InvocationType NON_BLOCKING

      Invoking the Invocable does not block the invoker thread, and the invocation may be performed immediately in the invoker thread.

      This invocation type is suitable for Invocables that call implementation code that is guaranteed to never block the invoker thread.

    • EITHER

      public static final Invocable.InvocationType EITHER

      Invoking the Invocable may block the invoker thread, but the invocation cannot be deferred to a later time, differently from BLOCKING.

      This invocation type is suitable for Invocables that themselves perform the non-deferrable action in a non-blocking way, thus advancing a possibly stalled system.

  • Method Details

    • values

      public static Invocable.InvocationType[] values()
      Returns an array containing the constants of this enum class, in the order they are declared.
      Returns:
      an array containing the constants of this enum class, in the order they are declared
    • valueOf

      public static Invocable.InvocationType valueOf(String name)
      Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)
      Parameters:
      name - the name of the enum constant to be returned.
      Returns:
      the enum constant with the specified name
      Throws:
      IllegalArgumentException - if this enum class has no constant with the specified name
      NullPointerException - if the argument is null
    • runWithoutBlocking

      public abstract void runWithoutBlocking(Runnable task, Executor executor)
      Run or Execute the task according to the InvocationType without blocking the caller:
      NON_BLOCKING
      The task is run directly
      BLOCKING
      The task is executed by the passed executor
      EITHER
      The task is invoked via Invocable.invokeNonBlocking(Runnable)
      Parameters:
      task - The task to run
      executor - The executor to use if necessary