123456789_123456789_123456789_123456789_123456789_

Module: ActiveRecord::ConnectionAdapters::ConnectionPool::ExecutorHooks

Do not use. This module is for internal use only.

Class Method Summary

Class Method Details

.complete(outer)

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 216

def complete(outer)
  kept = nil

  ConnectionPool.each_used_pool do |pool|
    if (connection = pool.active_connection?)
      transaction = connection.current_transaction
      if transaction.closed? || !transaction.joinable?
        pool.release_connection
      else
        (kept ||= []) << pool
      end
    end
  end

  inner = ConnectionPool.used_pools
  ConnectionPool.used_pools = outer || inner&.without_pools

  kept&.each { |pool| ConnectionPool.used_pools.add(pool) }
end

.run

[ GitHub ]

  
# File 'activerecord/lib/active_record/connection_adapters/abstract/connection_pool.rb', line 210

def run
  outer = ConnectionPool.used_pools
  ConnectionPool.used_pools = outer&.dup
  outer
end