ObjectPool

Constructors

this
this(PoolOptions options)
Undocumented in source.
this
this(ObjectFactory!(T) factory, PoolOptions options)
Undocumented in source.

Members

Functions

borrow
T borrow(Duration timeout, bool isQuiet)

Obtains an instance from this pool. <p> By contract, clients <strong>must</strong> return the borrowed instance using {@link #returnObject}, {@link #invalidateObject}, or a related method as defined in an implementation or sub-interface. </p> <p> The behaviour of this method when the pool has been exhausted is not strictly specified (although it may be specified by implementations). </p>

borrowAsync
Future!T borrowAsync()
clear
void clear()

Clears any objects sitting idle in the pool, releasing any associated resources (optional operation). Idle objects cleared must be {@link PooledObjectFactory#destroyObject(PooledObject)}.

close
void close()

Closes this pool, and free any resources associated with it. <p> Calling {@link #borrowObject} after invoking this method on a pool will cause them to throw an {@link IllegalStateException}. </p> <p> Implementations should silently fail if not all resources can be freed. </p>

getNumActive
size_t getNumActive()

Returns the number of instances currently borrowed from this pool. Returns a negative value if this information is not available. @return the number of instances currently borrowed from this pool.

getNumIdle
size_t getNumIdle()

Returns the number of instances currently idle in this pool. This may be considered an approximation of the number of objects that can be {@link #borrowObject borrowed} without creating any new instances. Returns a negative value if this information is not available. @return the number of instances currently idle in this pool.

getNumWaiters
size_t getNumWaiters()

Returns an estimate of the number of threads currently blocked waiting for an object from the pool. This is intended for monitoring only, not for synchronization control.

returnObject
void returnObject(T obj)

Returns an instance to the pool. By contract, <code>obj</code> <strong>must</strong> have been obtained using {@link #borrowObject()} or a related method as defined in an implementation or sub-interface.

size
size_t size()
Undocumented in source. Be warned that the author may not have intended to support it.
toString
string toString()
Undocumented in source. Be warned that the author may not have intended to support it.

Meta