mobius-rx2/src/main/java/com/spotify/mobius/rx2/DiscardAfterDisposeWrapper.java [33:64]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class DiscardAfterDisposeWrapper<I> implements Consumer<I>, Disposable {
  private final Consumer<I> consumer;
  @Nullable private final Disposable disposable;
  private volatile boolean disposed;

  static <I> DiscardAfterDisposeWrapper<I> wrapConnection(Connection<I> connection) {
    checkNotNull(connection);
    return new DiscardAfterDisposeWrapper<>(connection, connection);
  }

  static <I> DiscardAfterDisposeWrapper<I> wrapConsumer(Consumer<I> consumer) {
    return new DiscardAfterDisposeWrapper<>(checkNotNull(consumer), null);
  }

  private DiscardAfterDisposeWrapper(Consumer<I> consumer, @Nullable Disposable disposable) {
    this.consumer = consumer;
    this.disposable = disposable;
  }

  @Override
  public void accept(I effect) {
    if (disposed) {
      return;
    }
    consumer.accept(effect);
  }

  @Override
  public void dispose() {
    disposed = true;
    if (disposable != null) {
      disposable.dispose();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



mobius-rx3/src/main/java/com/spotify/mobius/rx3/DiscardAfterDisposeWrapper.java [35:66]:
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
class DiscardAfterDisposeWrapper<I> implements Consumer<I>, Disposable {
  private final Consumer<I> consumer;
  @Nullable private final Disposable disposable;
  private volatile boolean disposed;

  static <I> DiscardAfterDisposeWrapper<I> wrapConnection(Connection<I> connection) {
    checkNotNull(connection);
    return new DiscardAfterDisposeWrapper<>(connection, connection);
  }

  static <I> DiscardAfterDisposeWrapper<I> wrapConsumer(Consumer<I> consumer) {
    return new DiscardAfterDisposeWrapper<>(checkNotNull(consumer), null);
  }

  private DiscardAfterDisposeWrapper(Consumer<I> consumer, @Nullable Disposable disposable) {
    this.consumer = consumer;
    this.disposable = disposable;
  }

  @Override
  public void accept(I effect) {
    if (disposed) {
      return;
    }
    consumer.accept(effect);
  }

  @Override
  public void dispose() {
    disposed = true;
    if (disposable != null) {
      disposable.dispose();
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -



