Class: Net::BufferedIO

Inherits:
Object
  • Object
show all
Defined in:
lib/couchrest/monkeypatches.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#old_rbuf_fillObject



21
# File 'lib/couchrest/monkeypatches.rb', line 21

alias :old_rbuf_fill :rbuf_fill

#rbuf_fillObject



22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/couchrest/monkeypatches.rb', line 22

def rbuf_fill
  if @io.respond_to?(:read_nonblock)
    begin
      @rbuf << @io.read_nonblock(65536)
    rescue Errno::EWOULDBLOCK
      if IO.select([@io], nil, nil, @read_timeout)
        retry
      else
        raise Timeout::Error, "IO timeout"
      end
    end
  else
    timeout(@read_timeout) do
      @rbuf << @io.sysread(65536)
    end
  end
end