Sha256: 22445886623caddba98445a9bd89b3f13538aeffebabad92a02b7265b54c46b0
Contents?: true
Size: 1.05 KB
Versions: 9
Compression:
Stored size: 1.05 KB
Contents
# frozen_string_literal: true class RedisClient module ConnectionMixin def initialize @pending_reads = 0 end def revalidate if @pending_reads == 0 && connected? self end end def call(command, timeout) @pending_reads += 1 write(command) result = read(timeout) @pending_reads -= 1 if result.is_a?(Error) result._set_command(command) raise result else result end end def call_pipelined(commands, timeouts) exception = nil size = commands.size results = Array.new(commands.size) @pending_reads += size write_multi(commands) size.times do |index| timeout = timeouts && timeouts[index] result = read(timeout) @pending_reads -= 1 if result.is_a?(Error) result._set_command(commands[index]) exception ||= result end results[index] = result end if exception raise exception else results end end end end
Version data entries
9 entries across 9 versions & 2 rubygems