class RedisClient::RubyConnection::BufferedIO

def with_timeout(new_timeout)

def with_timeout(new_timeout)
  new_timeout = false if new_timeout == 0
  previous_read_timeout = @read_timeout
  previous_blocking_reads = @blocking_reads
  if new_timeout
    @read_timeout = new_timeout
  else
    @blocking_reads = true
  end
  begin
    yield
  ensure
    @read_timeout = previous_read_timeout
    @blocking_reads = previous_blocking_reads
  end
end