public virtual void Add(long value) { long cursor = _valueCursor.AndIncrement; long prevValue = _values.getAndSet(( int )(cursor % _values.length()), value); _total.addAndGet(value - prevValue); }