reactor-core/src/main/java/reactor/core/Exceptions.java
@Nullable
	public static <T> Throwable terminate(AtomicReferenceFieldUpdater<T, Throwable> field,
			T instance) {
		Throwable current = field.get(instance);
		if (current != TERMINATED) {
			current = field.getAndSet(instance, TERMINATED);
		}
		return current;
	}
@Nullable
	public static <T> Throwable terminate(AtomicReferenceFieldUpdater<T, Throwable> field,
			T instance) {
		Throwable current = field.get(instance);
		if (current != TERMINATED) {
			current = field.getAndSet(instance, TERMINATED);
		}
		return current;
	}
Atomic utility to safely mark a volatile throwable reference with a terminal
marker.

@param field the atomic container
@param instance the reference instance
@param <T> the instance type

@return the previously masked throwable