535: def eventable_read
536: @last_activity = Reactor.instance.current_loop_time
537: begin
538: if io.respond_to?(:read_nonblock)
539: 10.times {
540: data = io.read_nonblock(4096)
541: EventMachine::event_callback uuid, ConnectionData, data
542: }
543: else
544: data = io.sysread(4096)
545: EventMachine::event_callback uuid, ConnectionData, data
546: end
547: rescue Errno::EAGAIN, Errno::EWOULDBLOCK
548:
549: rescue Errno::ECONNRESET, Errno::ECONNREFUSED, EOFError
550: @close_scheduled = true
551: EventMachine::event_callback uuid, ConnectionUnbound, nil
552: end
553:
554: end