class Async::Debug::Selector

def register(object, interests)

def register(object, interests)
	Async.logger.debug(self) {"Registering #{object.inspect} for #{interests}."}
	
	unless io = ::IO.try_convert(object)
		raise RuntimeError, "Could not convert #{io} into IO!"
	end
	
	if monitor = @monitors[io.fileno]
		raise RuntimeError, "Trying to register monitor for #{object.inspect} but it was already registered: #{monitor.inspect}!"
	end
	
	monitor = Monitor.new(@selector.register(object, interests), self)
	
	@monitors[io.fileno] = monitor
	
	return monitor
end