aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
diff options
context:
space:
mode:
authorNick <nick@nicksieger.com>2008-04-19 14:42:56 -0500
committerNick Sieger <nick@nicksieger.com>2008-08-29 14:12:09 -0500
commitcab76ce6ac2983f59451e2d53b23746a2873aea0 (patch)
tree9aeb8c88ac13d353660d147fb82e6b865700f45a /activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
parent50cd4bdc99ebaf3ac879e4e7fea43c5b55ca5f68 (diff)
downloadrails-cab76ce6ac2983f59451e2d53b23746a2873aea0.tar.gz
rails-cab76ce6ac2983f59451e2d53b23746a2873aea0.tar.bz2
rails-cab76ce6ac2983f59451e2d53b23746a2873aea0.zip
Add synchronization to connection pool also
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb4
1 files changed, 3 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
index e262b2bac5..ed9d074506 100644
--- a/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract/connection_specification.rb
@@ -27,6 +27,8 @@ module ActiveRecord
@@connection_pools = {}
class << self
+ # Turning on allow_concurrency basically switches a null mutex for a real one, so that
+ # multi-threaded access of the connection pools hash is synchronized.
def allow_concurrency=(flag)
if @@allow_concurrency != flag
if flag
@@ -37,7 +39,7 @@ module ActiveRecord
end
end
- # for internal use only
+ # for internal use only and for testing
def active_connections #:nodoc:
@@connection_pools.inject({}) do |hash,kv|
hash[kv.first] = kv.last.active_connection