class method self.spawn_thread

Ruby on Rails 8.1.2

Since v6.0.6 Private

Available in: v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

self.spawn_thread(frequency)

No documentation comment.

Parameters

frequency req
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

Type at least 2 characters to search.

↑↓ navigate · open · esc close