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

302 lines
9.1 KiB
Java

package io.reactivex.internal.operators.observable;
import io.reactivex.ObservableSource;
import io.reactivex.Observer;
import io.reactivex.Scheduler;
import io.reactivex.disposables.Disposable;
import io.reactivex.internal.disposables.DisposableHelper;
import io.reactivex.internal.fuseable.QueueDisposable;
import io.reactivex.internal.fuseable.SimpleQueue;
import io.reactivex.internal.observers.BasicIntQueueDisposable;
import io.reactivex.internal.queue.SpscLinkedArrayQueue;
import io.reactivex.internal.schedulers.TrampolineScheduler;
import io.reactivex.plugins.RxJavaPlugins;
/* loaded from: classes2.dex */
public final class ObservableObserveOn<T> extends AbstractObservableWithUpstream<T, T> {
final Scheduler b;
final boolean c;
final int d;
public ObservableObserveOn(ObservableSource<T> observableSource, Scheduler scheduler, boolean z, int i) {
super(observableSource);
this.b = scheduler;
this.c = z;
this.d = i;
}
@Override // io.reactivex.Observable
protected void subscribeActual(Observer<? super T> observer) {
Scheduler scheduler = this.b;
if (scheduler instanceof TrampolineScheduler) {
this.a.subscribe(observer);
} else {
this.a.subscribe(new ObserveOnObserver(observer, scheduler.a(), this.c, this.d));
}
}
static final class ObserveOnObserver<T> extends BasicIntQueueDisposable<T> implements Observer<T>, Runnable {
final Observer<? super T> a;
final Scheduler.Worker b;
final boolean c;
final int d;
SimpleQueue<T> e;
Disposable f;
Throwable g;
volatile boolean h;
volatile boolean i;
int j;
boolean k;
ObserveOnObserver(Observer<? super T> observer, Scheduler.Worker worker, boolean z, int i) {
this.a = observer;
this.b = worker;
this.c = z;
this.d = i;
}
void a() {
int i = 1;
while (!this.i) {
boolean z = this.h;
Throwable th = this.g;
if (!this.c && z && th != null) {
this.i = true;
this.a.onError(th);
this.b.dispose();
return;
}
this.a.onNext(null);
if (z) {
this.i = true;
Throwable th2 = this.g;
if (th2 != null) {
this.a.onError(th2);
} else {
this.a.onComplete();
}
this.b.dispose();
return;
}
i = addAndGet(-i);
if (i == 0) {
return;
}
}
}
/* JADX WARN: Code restructure failed: missing block: B:14:0x0027, code lost:
r3 = addAndGet(-r3);
*/
/* JADX WARN: Code restructure failed: missing block: B:15:0x002c, code lost:
if (r3 != 0) goto L27;
*/
/* JADX WARN: Code restructure failed: missing block: B:17:0x002e, code lost:
return;
*/
/*
Code decompiled incorrectly, please refer to instructions dump.
To view partially-correct code enable 'Show inconsistent code' option in preferences
*/
void b() {
/*
r7 = this;
io.reactivex.internal.fuseable.SimpleQueue<T> r0 = r7.e
io.reactivex.Observer<? super T> r1 = r7.a
r2 = 1
r3 = 1
L6:
boolean r4 = r7.h
boolean r5 = r0.isEmpty()
boolean r4 = r7.a(r4, r5, r1)
if (r4 == 0) goto L13
return
L13:
boolean r4 = r7.h
java.lang.Object r5 = r0.poll() // Catch: java.lang.Throwable -> L33
if (r5 != 0) goto L1d
r6 = 1
goto L1e
L1d:
r6 = 0
L1e:
boolean r4 = r7.a(r4, r6, r1)
if (r4 == 0) goto L25
return
L25:
if (r6 == 0) goto L2f
int r3 = -r3
int r3 = r7.addAndGet(r3)
if (r3 != 0) goto L6
return
L2f:
r1.onNext(r5)
goto L13
L33:
r3 = move-exception
io.reactivex.exceptions.Exceptions.b(r3)
r7.i = r2
io.reactivex.disposables.Disposable r2 = r7.f
r2.dispose()
r0.clear()
r1.onError(r3)
io.reactivex.Scheduler$Worker r0 = r7.b
r0.dispose()
return
*/
throw new UnsupportedOperationException("Method not decompiled: io.reactivex.internal.operators.observable.ObservableObserveOn.ObserveOnObserver.b():void");
}
void c() {
if (getAndIncrement() == 0) {
this.b.a(this);
}
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public void clear() {
this.e.clear();
}
@Override // io.reactivex.disposables.Disposable
public void dispose() {
if (this.i) {
return;
}
this.i = true;
this.f.dispose();
this.b.dispose();
if (getAndIncrement() == 0) {
this.e.clear();
}
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public boolean isEmpty() {
return this.e.isEmpty();
}
@Override // io.reactivex.Observer
public void onComplete() {
if (this.h) {
return;
}
this.h = true;
c();
}
@Override // io.reactivex.Observer
public void onError(Throwable th) {
if (this.h) {
RxJavaPlugins.b(th);
return;
}
this.g = th;
this.h = true;
c();
}
@Override // io.reactivex.Observer
public void onNext(T t) {
if (this.h) {
return;
}
if (this.j != 2) {
this.e.offer(t);
}
c();
}
@Override // io.reactivex.Observer
public void onSubscribe(Disposable disposable) {
if (DisposableHelper.validate(this.f, disposable)) {
this.f = disposable;
if (disposable instanceof QueueDisposable) {
QueueDisposable queueDisposable = (QueueDisposable) disposable;
int requestFusion = queueDisposable.requestFusion(7);
if (requestFusion == 1) {
this.j = requestFusion;
this.e = queueDisposable;
this.h = true;
this.a.onSubscribe(this);
c();
return;
}
if (requestFusion == 2) {
this.j = requestFusion;
this.e = queueDisposable;
this.a.onSubscribe(this);
return;
}
}
this.e = new SpscLinkedArrayQueue(this.d);
this.a.onSubscribe(this);
}
}
@Override // io.reactivex.internal.fuseable.SimpleQueue
public T poll() throws Exception {
return this.e.poll();
}
@Override // io.reactivex.internal.fuseable.QueueFuseable
public int requestFusion(int i) {
if ((i & 2) == 0) {
return 0;
}
this.k = true;
return 2;
}
@Override // java.lang.Runnable
public void run() {
if (this.k) {
a();
} else {
b();
}
}
boolean a(boolean z, boolean z2, Observer<? super T> observer) {
if (this.i) {
this.e.clear();
return true;
}
if (!z) {
return false;
}
Throwable th = this.g;
if (this.c) {
if (!z2) {
return false;
}
this.i = true;
if (th != null) {
observer.onError(th);
} else {
observer.onComplete();
}
this.b.dispose();
return true;
}
if (th != null) {
this.i = true;
this.e.clear();
observer.onError(th);
this.b.dispose();
return true;
}
if (!z2) {
return false;
}
this.i = true;
observer.onComplete();
this.b.dispose();
return true;
}
}
}