A generic pool class that holds objects. These can be fetched
from the pool and released back to it at will, with very
little computaional cost. The pool should be created only once
and closed when it is no longer needed, to prevent leaks. See
dbPool
for an example of
object pooling applied to DBI database connections.
poolCreate(factory, minSize = 1, maxSize = Inf,
idleTimeout = 60, validationInterval = 600,
state = NULL)poolClose(pool)
A factory function responsible for the generation of
the objects that the pool will hold (ex: for DBI database connections,
this function is dbConnect
). It must take no arguments.
An optional number specifying the minimum number of objects that the pool should have at all times.
An optional number specifying the maximum number of objects that the pool may have at any time.
The number of seconds that an idle
object will be kept in the pool before it is destroyed (only
applies if the number of objects is over the minSize
).
Use Inf
if you want created objects never to be destroyed
(there isn't a great reason for this usually).
The minimum number of seconds that
pool
will wait before running a validation check on the
next checked out object. By not necessarily validating every
checked out object, there can be substantial perfomance gains
(especially if the interval between checking out new objects is
very small).
A pool
public variable to be used by
backend authors as necessary.
A Pool object previsouly created with
poolCreate
.