102 lines
2.5 KiB
Java
102 lines
2.5 KiB
Java
package io.reactivex.internal.observers;
|
|
|
|
import io.reactivex.Observer;
|
|
import io.reactivex.plugins.RxJavaPlugins;
|
|
|
|
/* loaded from: classes2.dex */
|
|
public class DeferredScalarDisposable<T> extends BasicIntQueueDisposable<T> {
|
|
static final int DISPOSED = 4;
|
|
static final int FUSED_CONSUMED = 32;
|
|
static final int FUSED_EMPTY = 8;
|
|
static final int FUSED_READY = 16;
|
|
static final int TERMINATED = 2;
|
|
private static final long serialVersionUID = -5502432239815349361L;
|
|
protected final Observer<? super T> downstream;
|
|
protected T value;
|
|
|
|
public DeferredScalarDisposable(Observer<? super T> observer) {
|
|
this.downstream = observer;
|
|
}
|
|
|
|
@Override // io.reactivex.internal.fuseable.SimpleQueue
|
|
public final void clear() {
|
|
lazySet(32);
|
|
this.value = null;
|
|
}
|
|
|
|
public final void complete(T t) {
|
|
int i = get();
|
|
if ((i & 54) != 0) {
|
|
return;
|
|
}
|
|
Observer<? super T> observer = this.downstream;
|
|
if (i == 8) {
|
|
this.value = t;
|
|
lazySet(16);
|
|
observer.onNext(null);
|
|
} else {
|
|
lazySet(2);
|
|
observer.onNext(t);
|
|
}
|
|
if (get() != 4) {
|
|
observer.onComplete();
|
|
}
|
|
}
|
|
|
|
@Override // io.reactivex.disposables.Disposable
|
|
public void dispose() {
|
|
set(4);
|
|
this.value = null;
|
|
}
|
|
|
|
public final void error(Throwable th) {
|
|
if ((get() & 54) != 0) {
|
|
RxJavaPlugins.b(th);
|
|
} else {
|
|
lazySet(2);
|
|
this.downstream.onError(th);
|
|
}
|
|
}
|
|
|
|
public final boolean isDisposed() {
|
|
return get() == 4;
|
|
}
|
|
|
|
@Override // io.reactivex.internal.fuseable.SimpleQueue
|
|
public final boolean isEmpty() {
|
|
return get() != 16;
|
|
}
|
|
|
|
@Override // io.reactivex.internal.fuseable.SimpleQueue
|
|
public final T poll() throws Exception {
|
|
if (get() != 16) {
|
|
return null;
|
|
}
|
|
T t = this.value;
|
|
this.value = null;
|
|
lazySet(32);
|
|
return t;
|
|
}
|
|
|
|
@Override // io.reactivex.internal.fuseable.QueueFuseable
|
|
public final int requestFusion(int i) {
|
|
if ((i & 2) == 0) {
|
|
return 0;
|
|
}
|
|
lazySet(8);
|
|
return 2;
|
|
}
|
|
|
|
public final boolean tryDispose() {
|
|
return getAndSet(4) != 4;
|
|
}
|
|
|
|
public final void complete() {
|
|
if ((get() & 54) != 0) {
|
|
return;
|
|
}
|
|
lazySet(2);
|
|
this.downstream.onComplete();
|
|
}
|
|
}
|