class method
self.spawn_thread
Ruby on Rails 8.1.2
Since v6.0.6 PrivateSignature
self.spawn_thread(frequency)
No documentation comment.
Parameters
-
frequencyreq
Source
# File activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb, line 66
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
refs = nil
@mutex.synchronize do
refs = @pools[frequency]
refs.select! do |pool|
pool.weakref_alive? && !pool.discarded?
rescue WeakRef::RefError
end
if refs.empty?
@pools.delete(frequency)
@threads.delete(frequency)
running = false
end
end
if running
pools(refs).each do |pool|
pool.reaper_lock do
pool.reap
pool.flush
pool.prepopulate
pool.retire_old_connections
pool.keep_alive
pool.preconnect
end
end
end
end
end
end
Defined in activerecord/lib/active_record/connection_adapters/abstract/connection_pool/reaper.rb line 66
· View on GitHub
· Improve this page
· Find usages on GitHub
Defined in ActiveRecord::ConnectionAdapters::ConnectionPool::Reaper