diff options
author | Matthew Draper <matthew@trebex.net> | 2016-07-06 23:50:37 +0930 |
---|---|---|
committer | Matthew Draper <matthew@trebex.net> | 2016-07-06 23:50:37 +0930 |
commit | 61f4b1ff8a54ccd7e70bb4f6c0b958b28bc648fc (patch) | |
tree | 1bceb5b8257693ce37b872cafbf7f75d22c8fa10 /activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb | |
parent | f397b385c402c95b2066005b403e794fc5542868 (diff) | |
download | rails-61f4b1ff8a54ccd7e70bb4f6c0b958b28bc648fc.tar.gz rails-61f4b1ff8a54ccd7e70bb4f6c0b958b28bc648fc.tar.bz2 rails-61f4b1ff8a54ccd7e70bb4f6c0b958b28bc648fc.zip |
Make connection stealing more explicit
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb b/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb index 98cf97910e..bf70d4dc59 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb @@ -415,7 +415,10 @@ module ActiveRecord with_exclusively_acquired_all_connections(raise_on_acquisition_timeout) do synchronize do @connections.each do |conn| - checkin conn + if conn.in_use? + conn.steal! + checkin conn + end conn.disconnect! end @connections = [] @@ -447,7 +450,10 @@ module ActiveRecord with_exclusively_acquired_all_connections(raise_on_acquisition_timeout) do synchronize do @connections.each do |conn| - checkin conn + if conn.in_use? + conn.steal! + checkin conn + end conn.disconnect! if conn.requires_reloading? end @connections.delete_if(&:requires_reloading?) @@ -557,8 +563,7 @@ module ActiveRecord @connections.select do |conn| conn.in_use? && !conn.owner.alive? end.each do |conn| - conn.expire - conn.lease + conn.steal! end end |