Class: Net::BufferedIO

Inherits:
Object
  • Object
show all
Defined in:
lib/net/http/faster.rb

Overview

Aaron Patterson’s monkeypatch (accepted into 1.9.1) to fix Net::HTTP’s speed problems.

gist.github.com/251244

Instance Method Summary collapse

Instance Method Details

#old_rbuf_fillObject

:nodoc:



10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/net/http/faster.rb', line 10

def rbuf_fill
  if @io.respond_to? :read_nonblock then
    begin
      @rbuf << @io.read_nonblock(65536)
    rescue Errno::EWOULDBLOCK, Errno::EAGAIN => e
      retry if IO.select [@io], nil, nil, @read_timeout
      raise Timeout::Error, e.message
    end
  else # SSL sockets do not have read_nonblock
    timeout @read_timeout do
      @rbuf << @io.sysread(65536)
    end
  end
end

#rbuf_fillObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/net/http/faster.rb', line 12

def rbuf_fill
  if @io.respond_to? :read_nonblock then
    begin
      @rbuf << @io.read_nonblock(65536)
    rescue Errno::EWOULDBLOCK, Errno::EAGAIN => e
      retry if IO.select [@io], nil, nil, @read_timeout
      raise Timeout::Error, e.message
    end
  else # SSL sockets do not have read_nonblock
    timeout @read_timeout do
      @rbuf << @io.sysread(65536)
    end
  end
end