elk-reasoner/src/main/java/org/semanticweb/elk/reasoner/saturation/ClassExpressionSaturationFactory.java
private static boolean updateIfSmaller(AtomicInteger counter, int value) {
		for (;;) {
			int snapshotCoutner = counter.get();
			if (snapshotCoutner >= value)
				return false;
			if (counter.compareAndSet(snapshotCoutner, value))
				return true;
		}
	}
private static boolean updateIfSmaller(AtomicInteger counter, int value) {
		for (;;) {
			int snapshotCoutner = counter.get();
			if (snapshotCoutner >= value)
				return false;
			if (counter.compareAndSet(snapshotCoutner, value))
				return true;
		}
	}
Update the counter to the value provided it is greater. Regardless of the
returned value, it is guaranteed that the value of the counter after
execution will be at least the input value.

@param counter
the counter that should be updated
@param value
the value to which the counter should be updated
@return {@code true} if the counter has been updated