package io.reactivex.internal.operators.observable; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.Observer; import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.Exceptions; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.disposables.EmptyDisposable; import io.reactivex.plugins.RxJavaPlugins; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ public final class ObservableAmb extends Observable { final ObservableSource[] a; final Iterable> b; static final class AmbInnerObserver extends AtomicReference implements Observer { final AmbCoordinator a; final int b; final Observer c; boolean d; AmbInnerObserver(AmbCoordinator ambCoordinator, int i, Observer observer) { this.a = ambCoordinator; this.b = i; this.c = observer; } public void a() { DisposableHelper.dispose(this); } @Override // io.reactivex.Observer public void onComplete() { if (this.d) { this.c.onComplete(); } else if (this.a.a(this.b)) { this.d = true; this.c.onComplete(); } } @Override // io.reactivex.Observer public void onError(Throwable th) { if (this.d) { this.c.onError(th); } else if (!this.a.a(this.b)) { RxJavaPlugins.b(th); } else { this.d = true; this.c.onError(th); } } @Override // io.reactivex.Observer public void onNext(T t) { if (this.d) { this.c.onNext(t); } else if (!this.a.a(this.b)) { get().dispose(); } else { this.d = true; this.c.onNext(t); } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } } public ObservableAmb(ObservableSource[] observableSourceArr, Iterable> iterable) { this.a = observableSourceArr; this.b = iterable; } @Override // io.reactivex.Observable public void subscribeActual(Observer observer) { int length; ObservableSource[] observableSourceArr = this.a; if (observableSourceArr == null) { observableSourceArr = new Observable[8]; try { length = 0; for (ObservableSource observableSource : this.b) { if (observableSource == null) { EmptyDisposable.error(new NullPointerException("One of the sources is null"), observer); return; } if (length == observableSourceArr.length) { ObservableSource[] observableSourceArr2 = new ObservableSource[(length >> 2) + length]; System.arraycopy(observableSourceArr, 0, observableSourceArr2, 0, length); observableSourceArr = observableSourceArr2; } int i = length + 1; observableSourceArr[length] = observableSource; length = i; } } catch (Throwable th) { Exceptions.b(th); EmptyDisposable.error(th, observer); return; } } else { length = observableSourceArr.length; } if (length == 0) { EmptyDisposable.complete(observer); } else if (length == 1) { observableSourceArr[0].subscribe(observer); } else { new AmbCoordinator(observer, length).a(observableSourceArr); } } static final class AmbCoordinator implements Disposable { final Observer a; final AmbInnerObserver[] b; final AtomicInteger c = new AtomicInteger(); AmbCoordinator(Observer observer, int i) { this.a = observer; this.b = new AmbInnerObserver[i]; } public void a(ObservableSource[] observableSourceArr) { AmbInnerObserver[] ambInnerObserverArr = this.b; int length = ambInnerObserverArr.length; int i = 0; while (i < length) { int i2 = i + 1; ambInnerObserverArr[i] = new AmbInnerObserver<>(this, i2, this.a); i = i2; } this.c.lazySet(0); this.a.onSubscribe(this); for (int i3 = 0; i3 < length && this.c.get() == 0; i3++) { observableSourceArr[i3].subscribe(ambInnerObserverArr[i3]); } } @Override // io.reactivex.disposables.Disposable public void dispose() { if (this.c.get() != -1) { this.c.lazySet(-1); for (AmbInnerObserver ambInnerObserver : this.b) { ambInnerObserver.a(); } } } public boolean a(int i) { int i2 = this.c.get(); int i3 = 0; if (i2 != 0) { return i2 == i; } if (!this.c.compareAndSet(0, i)) { return false; } AmbInnerObserver[] ambInnerObserverArr = this.b; int length = ambInnerObserverArr.length; while (i3 < length) { int i4 = i3 + 1; if (i4 != i) { ambInnerObserverArr[i3].a(); } i3 = i4; } return true; } } }