instance method
retrieve_connection_pool
Ruby on Rails 4.0.13
Since v2.2.3Signature
retrieve_connection_pool(klass)
Retrieving the connection pool happens a lot so we cache it in @class_to_pool. This makes retrieving the connection pool O(1) once the process is warm. When a connection is established or removed, we invalidate the cache.
Ideally we would use #fetch here, as class_to_pool may sometimes be nil. However, benchmarking (gist.github.com/jonleighton/3552829) showed that #fetch is significantly slower than #[]. So in the nil case, no caching will take place, but that’s ok since the nil case is not the common one that we wish to optimise for.
Parameters
-
klassreq
Source
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb, line 578
def retrieve_connection_pool(klass)
class_to_pool[klass.name] ||= begin
until pool = pool_for(klass)
klass = klass.superclass
break unless klass <= Base
end
class_to_pool[klass.name] = pool
end
end
Defined in activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb line 578
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::ConnectionHandler