981: def eventable_read
982: begin
983: if io.respond_to?(:recvfrom_nonblock)
984: 40.times {
985: data,@return_address = io.recvfrom_nonblock(16384)
986: EventMachine::event_callback uuid, ConnectionData, data
987: @return_address = nil
988: }
989: else
990: raise "unimplemented datagram-read operation on this Ruby"
991: end
992: rescue Errno::EAGAIN
993:
994: rescue Errno::ECONNRESET, EOFError
995: @close_scheduled = true
996: EventMachine::event_callback uuid, ConnectionUnbound, nil
997: end
998:
999: end