Package org.apache.storm.policy

# Class WaitStrategyPark

java.lang.Object
org.apache.storm.policy.WaitStrategyPark

All Implemented Interfaces:
  `IWaitStrategy`

public class WaitStrategyPark extends Object implements IWaitStrategy

- ## Nested Class Summary

  ## Nested classes/interfaces inherited from interface org.apache.storm.policy.IWaitStrategy

  `IWaitStrategy.WaitSituation`

- ## Constructor Summary

  Constructors
  Constructor
  Description
  `WaitStrategyPark()`
  `WaitStrategyPark(long microsec)`

- ## Method Summary

  Modifier and Type
  Method
  Description
  `int`
  `idle(int idleCounter)`
  Implementations of this method should be thread-safe (preferably no side-effects and lock-free).
  `void`
  `prepare(Map<String,Object> conf, IWaitStrategy.WaitSituation waitSituation)`

  ### Methods inherited from class java.lang.Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- ## Constructor Details

  - ### WaitStrategyPark

    public WaitStrategyPark()

  - ### WaitStrategyPark

    public WaitStrategyPark(long microsec)

- ## Method Details

  - ### prepare

    public void prepare(Map<String,Object> conf, IWaitStrategy.WaitSituation waitSituation)
    Specified by:
      `prepare` in interface `IWaitStrategy`

  - ### idle

    public int idle(int idleCounter) throws InterruptedException
    Description copied from interface: `IWaitStrategy`
    Implementations of this method should be thread-safe (preferably no side-effects and lock-free).

    Supports static or dynamic backoff. Dynamic backoff relies on idleCounter to estimate how long caller has been idling.

          int idleCounter = 0;
          int consumeCount = consumeFromQ();
          while (consumeCount==0) {
             idleCounter = strategy.idle(idleCounter);
             consumeCount = consumeFromQ();
          }

    Specified by:
      `idle` in interface `IWaitStrategy`
    Parameters:
      `idleCounter` - managed by the idle method until reset
    Returns:
      new counter value to be used on subsequent idle cycle
    Throws:
      `InterruptedException`