40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
|
# File 'lib/async/debug/selector.rb', line 40
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
|