package io.reactivex.internal.operators.observable; import android.Manifest; import io.reactivex.Observable; import io.reactivex.Observer; import io.reactivex.SingleObserver; import io.reactivex.SingleSource; import io.reactivex.disposables.Disposable; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.fuseable.SimplePlainQueue; import io.reactivex.internal.queue.SpscLinkedArrayQueue; import io.reactivex.internal.util.AtomicThrowable; import io.reactivex.plugins.RxJavaPlugins; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ public final class ObservableMergeWithSingle extends AbstractObservableWithUpstream { final SingleSource b; public ObservableMergeWithSingle(Observable observable, SingleSource singleSource) { super(observable); this.b = singleSource; } @Override // io.reactivex.Observable protected void subscribeActual(Observer observer) { MergeWithObserver mergeWithObserver = new MergeWithObserver(observer); observer.onSubscribe(mergeWithObserver); this.a.subscribe(mergeWithObserver); this.b.a(mergeWithObserver.c); } static final class MergeWithObserver extends AtomicInteger implements Observer, Disposable { final Observer a; final AtomicReference b = new AtomicReference<>(); final OtherObserver c = new OtherObserver<>(this); final AtomicThrowable d = new AtomicThrowable(); volatile SimplePlainQueue e; T f; volatile boolean g; volatile boolean h; volatile int i; static final class OtherObserver extends AtomicReference implements SingleObserver { final MergeWithObserver a; OtherObserver(MergeWithObserver mergeWithObserver) { this.a = mergeWithObserver; } @Override // io.reactivex.SingleObserver public void onError(Throwable th) { this.a.a(th); } @Override // io.reactivex.SingleObserver public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } @Override // io.reactivex.SingleObserver public void onSuccess(T t) { this.a.a((MergeWithObserver) t); } } MergeWithObserver(Observer observer) { this.a = observer; } void a(T t) { if (compareAndSet(0, 1)) { this.a.onNext(t); this.i = 2; } else { this.f = t; this.i = 1; if (getAndIncrement() != 0) { return; } } b(); } void b() { Observer observer = this.a; int i = 1; while (!this.g) { if (this.d.get() != null) { this.f = null; this.e = null; observer.onError(this.d.terminate()); return; } int i2 = this.i; if (i2 == 1) { T t = this.f; this.f = null; this.i = 2; observer.onNext(t); i2 = 2; } boolean z = this.h; SimplePlainQueue simplePlainQueue = this.e; Manifest poll = simplePlainQueue != null ? simplePlainQueue.poll() : null; boolean z2 = poll == null; if (z && z2 && i2 == 2) { this.e = null; observer.onComplete(); return; } else if (z2) { i = addAndGet(-i); if (i == 0) { return; } } else { observer.onNext(poll); } } this.f = null; this.e = null; } SimplePlainQueue c() { SimplePlainQueue simplePlainQueue = this.e; if (simplePlainQueue != null) { return simplePlainQueue; } SpscLinkedArrayQueue spscLinkedArrayQueue = new SpscLinkedArrayQueue(Observable.bufferSize()); this.e = spscLinkedArrayQueue; return spscLinkedArrayQueue; } @Override // io.reactivex.disposables.Disposable public void dispose() { this.g = true; DisposableHelper.dispose(this.b); DisposableHelper.dispose(this.c); if (getAndIncrement() == 0) { this.e = null; this.f = null; } } @Override // io.reactivex.Observer public void onComplete() { this.h = true; a(); } @Override // io.reactivex.Observer public void onError(Throwable th) { if (!this.d.addThrowable(th)) { RxJavaPlugins.b(th); } else { DisposableHelper.dispose(this.b); a(); } } @Override // io.reactivex.Observer public void onNext(T t) { if (compareAndSet(0, 1)) { this.a.onNext(t); if (decrementAndGet() == 0) { return; } } else { c().offer(t); if (getAndIncrement() != 0) { return; } } b(); } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this.b, disposable); } void a(Throwable th) { if (this.d.addThrowable(th)) { DisposableHelper.dispose(this.b); a(); } else { RxJavaPlugins.b(th); } } void a() { if (getAndIncrement() == 0) { b(); } } } }