static boolean replace()

in autodispose/src/main/java/autodispose2/AutoSubscriptionHelper.java [180:193]


  static boolean replace(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)) {
        return true;
      }
    }
  }