class ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper

def spawn_thread(frequency)

def spawn_thread(frequency)
  Thread.new(frequency) do |t|
    # Advise multi-threaded app servers to ignore this thread for
    # the purposes of fork safety warnings
    Thread.current.thread_variable_set(:fork_safe, true)
    Thread.current.name = "AR Pool Reaper"
    running = true
    while running
      sleep t
      @mutex.synchronize do
        @pools[frequency].select! do |pool|
          pool.weakref_alive? && !pool.discarded?
        end
        @pools[frequency].each do |p|
          p.reap
          p.flush
        rescue WeakRef::RefError
        end
        if @pools[frequency].empty?
          @pools.delete(frequency)
          @threads.delete(frequency)
          running = false
        end
      end
    end
  end
end