Class ThreadSafeLenientFixedSizePool<T>

All Implemented Interfaces:
Pool<T>, Pool.MultiGiver<T>, Pool.MultiPool<T>, Pool.MultiTaker<T>, Pool.SinglePool<T>
Direct Known Subclasses:
DynamicDelayedLogEntryPoolImpl, DynamicLogBufferPoolImpl, DynamicLogEntryPoolImpl

public class ThreadSafeLenientFixedSizePool<T> extends Object implements Pool.MultiPool<T>
A pool that
  • holds at least size items,
  • creates size items in the pool immediately,
  • creates a new item when the pool underflows,
  • discards the item when the pool overflows,
  • optionally clears the items given to it, and
  • IS thread-safe
  • Field Details

  • Constructor Details

  • Method Details

    • take

      public T take()
      Description copied from interface: Pool
      Takes an item from the pool. Depending on pool policy, if there are no items available, this may block, create a new item, or throw a PoolEmptyException.
      Specified by:
      take in interface Pool<T>
    • give

      public void give(T item)
      Description copied from interface: Pool
      Gives an unused item back to the pool. Passing null is safe and has no effect. If the pool has a clearing procedure, the item will be cleared. Depending on pool policy, if the pool is full, this may block, discard the item, or throw a PoolFullException.
      Specified by:
      give in interface Pool<T>
    • giveInternal

      protected boolean giveInternal(T item)
    • takeMaybeNull

      public T takeMaybeNull()