class Redis

def _xread(args, keys, ids, blocking_timeout_msec)

def _xread(args, keys, ids, blocking_timeout_msec)
  keys = keys.is_a?(Array) ? keys : [keys]
  ids = ids.is_a?(Array) ? ids : [ids]
  args << 'STREAMS'
  args.concat(keys)
  args.concat(ids)
  synchronize do |client|
    if blocking_timeout_msec.nil?
      client.call(args, &HashifyStreams)
    elsif blocking_timeout_msec.to_f.zero?
      client.call_without_timeout(args, &HashifyStreams)
    else
      timeout = client.timeout.to_f + blocking_timeout_msec.to_f / 1000.0
      client.call_with_timeout(args, timeout, &HashifyStreams)
    end
  end
end