Package io.deephaven.base.pool
Class ThreadSafeLenientFixedSizePool<T>
java.lang.Object
io.deephaven.base.pool.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
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
-
Nested Class Summary
Nested classes/interfaces inherited from interface io.deephaven.base.pool.Pool
Pool.Factory, Pool.MultiGiver<T>, Pool.MultiPool<T>, Pool.MultiTaker<T>, Pool.SinglePool<T>
-
Field Summary
-
Constructor Summary
ConstructorDescriptionThreadSafeLenientFixedSizePool
(int size, Function<ThreadSafeLenientFixedSizePool<T>, T> factory, Consumer<? super T> clearingProcedure) ThreadSafeLenientFixedSizePool
(int size, Supplier<T> factory, Consumer<? super T> clearingProcedure) ThreadSafeLenientFixedSizePool
(String name, int size, Function<ThreadSafeLenientFixedSizePool<T>, T> factory, Consumer<? super T> clearingProcedure) ThreadSafeLenientFixedSizePool
(String name, int size, Supplier<T> factory, Consumer<? super T> clearingProcedure) -
Method Summary
Modifier and TypeMethodDescriptionvoid
Gives an unused item back to the pool.protected boolean
giveInternal
(T item) take()
Takes an item from the pool.
-
Field Details
-
FACTORY
-
MIN_SIZE
public static final int MIN_SIZE- See Also:
-
-
Constructor Details
-
ThreadSafeLenientFixedSizePool
-
ThreadSafeLenientFixedSizePool
-
ThreadSafeLenientFixedSizePool
-
ThreadSafeLenientFixedSizePool
-
-
Method Details
-
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 aPoolEmptyException
. -
give
Description copied from interface:Pool
Gives an unused item back to the pool. Passingnull
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 aPoolFullException
. -
giveInternal
-
takeMaybeNull
-