in autodispose/src/main/java/autodispose2/AutoSubscriptionHelper.java [118:134]
static boolean set(AtomicReference<Subscription> field, @Nullable Subscription s) {
for (; ; ) {
Subscription current = field.get();
if (current == CANCELLED) {
if (s != null) {
s.cancel();
}
return false;
}
if (field.compareAndSet(current, s)) {
if (current != null) {
current.cancel();
}
return true;
}
}
}