jimu-decompiled/sources/io/reactivex/internal/observers/QueueDrainObserver.java
2025-05-13 19:24:51 +02:00

90 lines
2.7 KiB
Java

package io.reactivex.internal.observers;
import io.reactivex.Observer;
import io.reactivex.disposables.Disposable;
import io.reactivex.internal.fuseable.SimplePlainQueue;
import io.reactivex.internal.util.ObservableQueueDrain;
import io.reactivex.internal.util.QueueDrainHelper;
/* loaded from: classes2.dex */
public abstract class QueueDrainObserver<T, U, V> extends QueueDrainSubscriberPad2 implements Observer<T>, ObservableQueueDrain<U, V> {
protected final Observer<? super V> b;
protected final SimplePlainQueue<U> c;
protected volatile boolean d;
protected volatile boolean e;
protected Throwable f;
public QueueDrainObserver(Observer<? super V> observer, SimplePlainQueue<U> simplePlainQueue) {
this.b = observer;
this.c = simplePlainQueue;
}
@Override // io.reactivex.internal.util.ObservableQueueDrain
public void a(Observer<? super V> observer, U u) {
}
@Override // io.reactivex.internal.util.ObservableQueueDrain
public final boolean a() {
return this.e;
}
@Override // io.reactivex.internal.util.ObservableQueueDrain
public final boolean b() {
return this.d;
}
@Override // io.reactivex.internal.util.ObservableQueueDrain
public final Throwable c() {
return this.f;
}
public final boolean d() {
return this.a.getAndIncrement() == 0;
}
public final boolean e() {
return this.a.get() == 0 && this.a.compareAndSet(0, 1);
}
protected final void a(U u, boolean z, Disposable disposable) {
Observer<? super V> observer = this.b;
SimplePlainQueue<U> simplePlainQueue = this.c;
if (this.a.get() == 0 && this.a.compareAndSet(0, 1)) {
a(observer, u);
if (a(-1) == 0) {
return;
}
} else {
simplePlainQueue.offer(u);
if (!d()) {
return;
}
}
QueueDrainHelper.a(simplePlainQueue, observer, z, disposable, this);
}
protected final void b(U u, boolean z, Disposable disposable) {
Observer<? super V> observer = this.b;
SimplePlainQueue<U> simplePlainQueue = this.c;
if (this.a.get() != 0 || !this.a.compareAndSet(0, 1)) {
simplePlainQueue.offer(u);
if (!d()) {
return;
}
} else if (simplePlainQueue.isEmpty()) {
a(observer, u);
if (a(-1) == 0) {
return;
}
} else {
simplePlainQueue.offer(u);
}
QueueDrainHelper.a(simplePlainQueue, observer, z, disposable, this);
}
@Override // io.reactivex.internal.util.ObservableQueueDrain
public final int a(int i) {
return this.a.addAndGet(i);
}
}