class Async::Container::Supervisor::Server

def run(parent: Task.current)

def run(parent: Task.current)
	parent.async do |task|
		@monitors.each do |monitor|
			begin
				monitor.run
			rescue => error
				Console.error(self, "Error while starting monitor!", monitor: monitor, exception: error)
			end
		end
		
		@endpoint.accept do |peer|
			connection = Connection.new(peer, 1)
			connection.run(self)
		ensure
			connection.close
			remove(connection)
		end
		
		task.children&.each(&:wait)
	ensure
		task.stop
	end
end