# File lib/extlib/pooling.rb, line 32 def self.scavenger unless scavenger? @scavenger = Thread.new do running = true while running do # Sleep before we actually start doing anything. # Otherwise we might clean up something we just made sleep(scavenger_interval) lock.synchronize do pools.each do |pool| # This is a useful check, but non-essential, and right now it breaks lots of stuff. # if pool.expired? pool.lock.synchronize do if pool.expired? pool.dispose end end # end end # The pool is empty, we stop the scavenger # It wil be restarted if new resources are added again if pools.empty? running = false end end end # loop end end @scavenger.priority = -10 @scavenger end