method
spawn_thread
v7.2.3 -
Show latest stable
- Class:
ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper
spawn_thread(frequency)private
No documentation available.
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb, line 41
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