class Excon::Socket

def select_with_timeout(socket, type)

def select_with_timeout(socket, type)
  select = case type
  when :connect_read
    IO.select([socket], nil, nil, @data[:connect_timeout])
  when :connect_write
    IO.select(nil, [socket], nil, @data[:connect_timeout])
  when :read
    IO.select([socket], nil, nil, @data[:read_timeout])
  when :write
    IO.select(nil, [socket], nil, @data[:write_timeout])
  end
  select || raise(Excon::Errors::Timeout.new("#{type} timeout reached"))
end