reactor-core/src/main/java/reactor/core/publisher/Operators.java
static <T> long addCapCancellable(AtomicLongFieldUpdater<T> updater, T instance,
			long n) {
		for (; ; ) {
			long r = updater.get(instance);
			if (r == Long.MIN_VALUE || r == Long.MAX_VALUE) {
				return r;
			}
			long u = addCap(r, n);
			if (updater.compareAndSet(instance, r, u)) {
				return r;
			}
		}
	}
static <T> long addCapCancellable(AtomicLongFieldUpdater<T> updater, T instance,
			long n) {
		for (; ; ) {
			long r = updater.get(instance);
			if (r == Long.MIN_VALUE || r == Long.MAX_VALUE) {
				return r;
			}
			long u = addCap(r, n);
			if (updater.compareAndSet(instance, r, u)) {
				return r;
			}
		}
	}
Add the amount {@code n} to the given field, capped to {@link Long#MAX_VALUE},
unless the field is already at {@link Long#MAX_VALUE} OR {@link Long#MIN_VALUE}.
Return the value before the update.

@param updater the field to update
@param instance the instance bearing the field
@param n the value to add
@param <T> the type of the field-bearing instance

@return the old value of the field, before update.