class Concurrent::RubyThreadPoolExecutor
def ns_prune_pool
try oldest worker if it is idle for enough time, it's returned back at the start
def ns_prune_pool now = Concurrent.monotonic_time stopped_workers = 0 while !@ready.empty? && (@pool.size - stopped_workers > @min_length) worker, last_message = @ready.first if now - last_message > self.idletime stopped_workers += 1 @ready.shift worker << :stop else break end end @next_gc_time = Concurrent.monotonic_time + @gc_interval end