Object
# File lib/celluloid/io/reactor.rb, line 96 def interests_symbol case @interests.keys when [:r] :r when [:w] :w when [:r, :w] :rw end end
# File lib/celluloid/io/reactor.rb, line 84 def reregister if @monitor @monitor.close @monitor = nil end if interests_symbol @monitor = @selector.register(@io, interests_symbol) @monitor.value = self end end
# File lib/celluloid/io/reactor.rb, line 107 def resume raise "No monitor" unless @monitor if @monitor.readable? resume_for :r end if @monitor.writable? resume_for :w end reregister end
# File lib/celluloid/io/reactor.rb, line 121 def resume_for(interest) task = @interests.delete(interest) if task if task.running? task.resume else raise "reactor attempted to resume a dead task" end end end
# File lib/celluloid/io/reactor.rb, line 77 def wait(interest) raise "Already waiting for #{interest.inspect}" if @interests.include?(interest) @interests[interest] = Task.current reregister Task.suspend :iowait end
Generated with the Darkfish Rdoc Generator 2.