class Memory::Leak::Cluster

def check!(&block)

@yields {|process_id, monitor| ...} each process ID and monitor that is leaking or exceeds the memory limit.

Check all processes in the cluster for memory leaks.
def check!(&block)
	return to_enum(__method__) unless block_given?
	
	self.sample!
	
	leaking = []
	
	@processes.each do |process_id, monitor|
		if monitor.leaking?
			Console.debug(self, "Memory Leak Detected!", process_id: process_id, monitor: monitor)
			
			leaking << [process_id, monitor]
		end
	end
	
	leaking.each(&block)
	
	# Finally, apply any per-cluster memory limits:
	apply_limit!(@total_size_limit, &block) if @total_size_limit
end