类io.reactivex.internal.disposables.DisposableHelper源码实例Demo

下面列出了怎么用io.reactivex.internal.disposables.DisposableHelper的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: rxjava2-extras   文件: FlowableInsertTimeout.java
@Override
public void onNext(final T t) {
    if (finished) {
        return;
    }
    queue.offer(t);
    final long waitTime;
    try {
        waitTime = timeout.apply(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        // we cancel upstream ourselves because the
        // error did not originate from source
        upstream.cancel();
        onError(e);
        return;
    }
    TimeoutAction<T> action = new TimeoutAction<T>(this, t);
    Disposable d = worker.schedule(action, waitTime, unit);
    DisposableHelper.set(scheduled, d);
    drain();
}
 
源代码2 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
@Override
public void onNext(T t) {
    if (finished) {
        return;
    }
    queue.offer(t);
    Maybe<? extends T> maybe;
    try {
        maybe = valueToInsert.apply(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        // we cancel upstream ourselves because the
        // error did not originate from source
        upstream.cancel();
        onError(e);
        return;
    }
    ValueToInsertObserver<T> o = new ValueToInsertObserver<T>(this);
    if (DisposableHelper.set(valueToInsertObserver, o)) {
        // note that at this point we have to cover o being disposed
        // from another thread so the Observer class needs
        // to handle dispose being called before/during onSubscribe
        maybe.subscribe(o);
    }
    drain();
}
 
源代码3 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
@Override
public void cancel() {
    if (!cancelled) {
        cancelled = true;
        upstream.cancel();
        DisposableHelper.dispose(valueToInsertObserver);
        if (getAndIncrement() == 0) {
            // use the same access control to queue as drain method
            // because `clear` just calls `queue.poll()` repeatedly till nothing left on the
            // queue (ignoring the dequeued items).
            //
            // this is best endeavours, there still exists a race with onNext and drain
            // where items could be left on the queue after cancel
            queue.clear();
        }
    }
}
 
源代码4 项目: rxjava-RxLife   文件: LifeObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.setOnce(this, d)) {
        try {
            addObserver();
            downstream.onSubscribe(d);
        } catch (Throwable ex) {
            Exceptions.throwIfFatal(ex);
            d.dispose();
            onError(ex);
        }
    }
}
 
源代码5 项目: rxjava-RxLife   文件: LifeObserver.java
@Override
public void onError(Throwable t) {
    if (isDisposed()) {
        RxJavaPlugins.onError(t);
        return;
    }
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onError(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(new CompositeException(t, e));
    }
}
 
源代码6 项目: rxjava-RxLife   文件: LifeObserver.java
@Override
public void onComplete() {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onComplete();
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(e);
    }
}
 
源代码7 项目: rxjava-RxLife   文件: LifeMaybeObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.setOnce(this, d)) {
        try {
            addObserver();
            downstream.onSubscribe(d);
        } catch (Throwable ex) {
            Exceptions.throwIfFatal(ex);
            d.dispose();
            onError(ex);
        }
    }
}
 
源代码8 项目: rxjava-RxLife   文件: LifeMaybeObserver.java
@Override
public void onSuccess(T t) {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onSuccess(t);
    } catch (Throwable ex) {
        Exceptions.throwIfFatal(ex);
        RxJavaPlugins.onError(ex);
    }
}
 
源代码9 项目: rxjava-RxLife   文件: LifeMaybeObserver.java
@Override
public void onError(Throwable t) {
    if (isDisposed()) {
        RxJavaPlugins.onError(t);
        return;
    }
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onError(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(new CompositeException(t, e));
    }
}
 
源代码10 项目: rxjava-RxLife   文件: LifeMaybeObserver.java
@Override
public void onComplete() {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onComplete();
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(e);
    }
}
 
源代码11 项目: rxjava-RxLife   文件: LifeCompletableObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.setOnce(this, d)) {
        try {
            addObserver();
            downstream.onSubscribe(d);
        } catch (Throwable ex) {
            Exceptions.throwIfFatal(ex);
            d.dispose();
            onError(ex);
        }
    }
}
 
源代码12 项目: rxjava-RxLife   文件: LifeCompletableObserver.java
@Override
public void onError(Throwable t) {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onError(t);
    } catch (Throwable ex) {
        Exceptions.throwIfFatal(ex);
        RxJavaPlugins.onError(ex);
    }
}
 
源代码13 项目: rxjava-RxLife   文件: LifeCompletableObserver.java
@Override
public void onComplete() {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onComplete();
    } catch (Throwable ex) {
        Exceptions.throwIfFatal(ex);
        RxJavaPlugins.onError(ex);
    }
}
 
源代码14 项目: rxjava-RxLife   文件: LifeSingleObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.setOnce(this, d)) {
        try {
            addObserver();
            downstream.onSubscribe(d);
        } catch (Throwable ex) {
            Exceptions.throwIfFatal(ex);
            d.dispose();
            onError(ex);
        }
    }
}
 
源代码15 项目: rxjava-RxLife   文件: LifeSingleObserver.java
@Override
public void onSuccess(T t) {
    if (isDisposed()) return;
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onSuccess(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(e);
    }
}
 
源代码16 项目: rxjava-RxLife   文件: LifeSingleObserver.java
@Override
public void onError(Throwable t) {
    if (isDisposed()) {
        RxJavaPlugins.onError(t);
        return;
    }
    lazySet(DisposableHelper.DISPOSED);
    try {
        removeObserver();
        downstream.onError(t);
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        RxJavaPlugins.onError(new CompositeException(t, e));
    }
}
 
源代码17 项目: RxJava2Debug   文件: CompletableOnAssembly.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.validate(this.d, d)) {
        this.d = d;

        actual.onSubscribe(this);
    }
}
 
源代码18 项目: RxJava2Debug   文件: MaybeOnAssembly.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.validate(this.d, d)) {
        this.d = d;

        actual.onSubscribe(this);
    }
}
 
源代码19 项目: RxJava2Debug   文件: SingleOnAssembly.java
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.validate(this.d, d)) {
        this.d = d;

        actual.onSubscribe(this);
    }
}
 
源代码20 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
@Override
public void onError(Throwable e) {
    if (finished) {
        RxJavaPlugins.onError(e);
        return;
    }
    finished = true;
    if (error.compareAndSet(null, e)) {
        DisposableHelper.dispose(valueToInsertObserver);
        done = true;
        drain();
    } else {
        RxJavaPlugins.onError(e);
    }
}
 
源代码21 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
@Override
public void onComplete() {
    if (finished) {
        return;
    }
    finished = true;
    DisposableHelper.dispose(valueToInsertObserver);
    done = true;
    drain();
}
 
源代码22 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
void insertError(Throwable e) {
    if (error.compareAndSet(null, e)) {
        upstream.cancel();
        DisposableHelper.dispose(valueToInsertObserver);
        done = true;
        drain();
    } else {
        RxJavaPlugins.onError(e);
    }
}
 
源代码23 项目: rxjava2-extras   文件: FlowableInsertMaybe.java
@Override
public void onSubscribe(Disposable upstream) {
    // an AtomicReference is used to hold the upstream Disposable
    // because this Observer can be disposed before onSubscribe
    // is called (contrary to the normal contract).
    DisposableHelper.setOnce(this, upstream);
}
 
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.validate(this.d, d)) {
        this.d = d;

        actual.onSubscribe(this);
    }
}
 
@Override
public void onSubscribe(Disposable d) {
    if (DisposableHelper.validate(this.d, d)) {
        this.d = d;

        actual.onSubscribe(this);
    }
}
 
源代码26 项目: armeria   文件: RequestContextSingleObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (!DisposableHelper.validate(disposable, d)) {
        return;
    }
    disposable = d;
    try (SafeCloseable ignored = assemblyContext.push()) {
        actual.onSubscribe(this);
    }
}
 
源代码27 项目: armeria   文件: RequestContextMaybeObserver.java
@Override
public void onSubscribe(Disposable d) {
    if (!DisposableHelper.validate(disposable, d)) {
        return;
    }
    disposable = d;
    try (SafeCloseable ignored = assemblyContext.push()) {
        actual.onSubscribe(this);
    }
}
 
@Override
public void onSubscribe(Disposable d) {
    if (!DisposableHelper.validate(disposable, d)) {
        return;
    }
    disposable = d;
    try (SafeCloseable ignored = assemblyContext.push()) {
        actual.onSubscribe(this);
    }
}
 
源代码29 项目: vertx-rx   文件: WriteStreamObserverImpl.java
@Override
public void onSubscribe(Disposable disposable) {
  Objects.requireNonNull(disposable, "disposable");
  if (!setDisposable(disposable)) {
    disposable.dispose();
    DisposableHelper.reportDisposableSet();
    return;
  }
  writeStream.exceptionHandler(t -> {
    if (!setDone()) {
      RxJavaPlugins.onError(t);
      return;
    }
    getDisposable().dispose();
    Consumer<? super Throwable> c;
    synchronized (this) {
      c = this.writeStreamExceptionHandler;
    }
    if (c != null) {
      try {
        c.accept(t);
      } catch (Exception e) {
        RxJavaPlugins.onError(t);
      }
    }
  });
}
 
源代码30 项目: rxjava-RxLife   文件: LifeObserver.java
@Override
public boolean isDisposed() {
    return DisposableHelper.isDisposed(get());
}
 
 类所在包
 同包方法