Class SubmitToThreadPool

java.lang.Object
org.jgroups.util.SubmitToThreadPool
All Implemented Interfaces:
MessageProcessingPolicy
Direct Known Subclasses:
MaxOneThreadPerSender, PassRegularMessagesUpDirectly

public class SubmitToThreadPool extends Object implements MessageProcessingPolicy
Default message processing policy. Submits all received messages and batches to the thread pool
Since:
4.0
  • Field Details

    • tp

      protected TP tp
    • tp_id

      protected short tp_id
    • log

      protected Log log
  • Constructor Details

    • SubmitToThreadPool

      public SubmitToThreadPool()
  • Method Details

    • getTransport

      protected TP getTransport()
    • init

      public void init(TP transport)
      Description copied from interface: MessageProcessingPolicy
      Called after creation. Implementations may want to cache the transport reference to get access to thread pools, message counters etc
      Specified by:
      init in interface MessageProcessingPolicy
    • loopback

      public boolean loopback(Message msg, boolean oob)
      Description copied from interface: MessageProcessingPolicy
      Process a message that was not received from the transport but from above (e.g. the channel or a protocol), and needs to be looped back up because (1) the destination address is null (every multicast message is looped back) or (2) the destination address is the sender's address (unicast message to self).

      A message that is looped back can bypass cluster name matching.

      Specified by:
      loopback in interface MessageProcessingPolicy
      Parameters:
      msg - the message to be looped back up the stack.
      oob - true if the message is an OOB message
      Returns:
    • process

      public boolean process(Message msg, boolean oob)
      Description copied from interface: MessageProcessingPolicy
      Process a message received from the transport
      Specified by:
      process in interface MessageProcessingPolicy
      Parameters:
      msg - the message
      oob - true if the message is an OOB message
      Returns:
    • process

      public boolean process(MessageBatch batch, boolean oob)
      Description copied from interface: MessageProcessingPolicy
      Process a batch received from the transport
      Specified by:
      process in interface MessageProcessingPolicy
      Parameters:
      batch - the batch
      oob - true if the batch contains only OOB messages
      Returns:
    • removeAndDispatchNonBundledMessages

      protected boolean removeAndDispatchNonBundledMessages(MessageBatch oob_batch)
      Removes messages with flags DONT_BUNDLE and OOB set and executes them in the oob or internal thread pool. JGRP-1737 Returns true if at least one message was removed