class Build::Files::Monitor::INotify

def run(**options, &block)

def run(**options, &block)
	notifier = ::INotify::Notifier.new
	
	catch(:interrupt) do
		while true
			self.roots.each do |root|
				notifier.watch root, :create, :modify, :attrib, :delete do |event|
					self.update([root])
					
					yield
					
					if self.updated
						notifier.stop
					end
				end
			end
			
			notifier.run
		end
	end
end