673: def eventable_read
674: begin
675: if io.respond_to?(:recvfrom_nonblock)
676: 40.times {
677: data,@return_address = io.recvfrom_nonblock(16384)
678: EventMachine::event_callback uuid, ConnectionData, data
679: @return_address = nil
680: }
681: else
682: raise "unimplemented datagram-read operation on this Ruby"
683: end
684: rescue Errno::EAGAIN
685:
686: rescue Errno::ECONNRESET, EOFError
687: @close_scheduled = true
688: EventMachine::event_callback uuid, ConnectionUnbound, nil
689: end
690:
691: end