def << (values)
      Array(values).each do |value|
        @lock.synchronize do
          # sampling strategy is Vitter's algo R
          if count < size
            @pool[count] = value
          else
            index = rand(count+1)
            if index < @size
              @pool[index] = value
            end
          end
          @count += 1
        end
      end
    end
def << (values)
      Array(values).each do |value|
        @lock.synchronize do
          # sampling strategy is Vitter's algo R
          if count < size
            @pool[count] = value
          else
            index = rand(count+1)
            if index < @size
              @pool[index] = value
            end
          end
          @count += 1
        end
      end
    end
size of allocated pool
 Create a reservoir.
 @option opts [Integer] :size Size of reservoir

 Add one or more values to the reservoir.
 @example
   reservoir << 1234
   reservoir << [2345,7891,2131]