Creates a new
ConnectionPool object. spec is a ConnectionSpecification object
which describes database connection
information (e.g. adapter, host name, username, password, etc), as well as
the maximum size for this ConnectionPool.
The default ConnectionPool maximum size is 5.
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb, line 74
def initialize(spec)
super()
@spec = spec
# The cache of reserved connections mapped to threads
@reserved_connections = {}
@queue = new_cond
# 'wait_timeout', the backward-compatible key, conflicts with spec key
# used by mysql2 for something entirely different, checkout_timeout
# preferred to avoid conflict and allow independent values.
@timeout = spec.config[:checkout_timeout] || spec.config[:wait_timeout] || 5
# default max pool size to 5
@size = (spec.config[:pool] && spec.config[:pool].to_i) || 5
@connections = []
@automatic_reconnect = true
end