Class SimpleDaemonPoolExecutor

java.lang.Object
com.oracle.coherence.grpc.SimpleDaemonPoolExecutor
All Implemented Interfaces:
ClassLoaderAware, Controllable, Executor
Direct Known Subclasses:
DaemonPoolExecutor

public class SimpleDaemonPoolExecutor extends Object implements Executor, Controllable
An Executor that uses a DaemonPool to execute tasks.

Instances of SimpleDaemonPoolExecutor are created with a DaemonPool that is stopped. The executor should be started by calling the start() method.

Tasks submitted without calling start will be executed immediately on the calling thread.

Since:
20.06
Author:
Jonathan Knight 2020.06.24
  • Field Details

    • f_pool

      protected final com.tangosol.internal.util.DaemonPool f_pool
      The DaemonPool that will be used to execute tasks.
  • Constructor Details

    • SimpleDaemonPoolExecutor

      public SimpleDaemonPoolExecutor(String sName)
    • SimpleDaemonPoolExecutor

      public SimpleDaemonPoolExecutor(String sName, int cThreads, int cThreadsMin, int cThreadsMax)
    • SimpleDaemonPoolExecutor

      public SimpleDaemonPoolExecutor(com.tangosol.internal.util.DefaultDaemonPoolDependencies dependencies)
    • SimpleDaemonPoolExecutor

      public SimpleDaemonPoolExecutor(com.tangosol.internal.util.DaemonPool pool)
      Parameters:
      pool - the DaemonPool to use
  • Method Details

    • execute

      public void execute(Runnable command)
      Specified by:
      execute in interface Executor
    • configure

      public void configure(XmlElement xmlElement)
      Description copied from interface: Controllable
      Configure the controllable service.

      This method can only be called before the controllable service is started.

      Specified by:
      configure in interface Controllable
      Parameters:
      xmlElement - an XmlElement carrying configuration information specific to the Controllable object
    • start

      public void start()
      Description copied from interface: Controllable
      Start the controllable service.

      This method should only be called once per the life cycle of the Controllable service. This method has no affect if the service is already running.

      Specified by:
      start in interface Controllable
    • isRunning

      public boolean isRunning()
      Description copied from interface: Controllable
      Determine whether or not the controllable service is running. This method returns false before a service is started, while the service is starting, while a service is shutting down and after the service has stopped. It only returns true after completing its start processing and before beginning its shutdown processing.
      Specified by:
      isRunning in interface Controllable
      Returns:
      true if the service is running; false otherwise
    • isStuck

      public boolean isStuck()
      Return true if the pool is stuck.
      Returns:
      true if the pool is stuck
    • shutdown

      public void shutdown()
      Description copied from interface: Controllable
      Stop the controllable service. This is a controlled shut-down, and is preferred to the Controllable.stop() method.

      This method should only be called once per the life cycle of the controllable service. Calling this method for a service that has already stopped has no effect.

      Specified by:
      shutdown in interface Controllable
    • stop

      public void stop()
      Description copied from interface: Controllable
      Hard-stop the controllable service. Use Controllable.shutdown() for normal service termination. Calling this method for a service that has already stopped has no effect.
      Specified by:
      stop in interface Controllable
    • getContextClassLoader

      public ClassLoader getContextClassLoader()
      Description copied from interface: ClassLoaderAware
      Retrieve the context ClassLoader for this object. The context ClassLoader is provided by the creator of the object for use by the object when loading classes and resources.
      Specified by:
      getContextClassLoader in interface ClassLoaderAware
      Returns:
      the context ClassLoader for this object
      See Also:
    • setContextClassLoader

      public void setContextClassLoader(ClassLoader loader)
      Description copied from interface: ClassLoaderAware
      Specify the context ClassLoader for this object. The context ClassLoader can be set when the object is created, and allows the creator to provide the appropriate class loader to be used by the object when when loading classes and resources.
      Specified by:
      setContextClassLoader in interface ClassLoaderAware
      Parameters:
      loader - the context ClassLoader for this object
    • getPool

      public com.tangosol.internal.util.DaemonPool getPool()
      Obtain the underlying DaemonPool.
      Returns:
      the underlying DaemonPool