package io.reactivex.internal.operators.observable; import io.reactivex.Observable; import io.reactivex.ObservableSource; import io.reactivex.Observer; import io.reactivex.disposables.CompositeDisposable; import io.reactivex.disposables.Disposable; import io.reactivex.exceptions.Exceptions; import io.reactivex.functions.BiFunction; import io.reactivex.functions.Function; import io.reactivex.internal.disposables.DisposableHelper; import io.reactivex.internal.functions.ObjectHelper; import io.reactivex.internal.queue.SpscLinkedArrayQueue; import io.reactivex.internal.util.ExceptionHelper; import io.reactivex.plugins.RxJavaPlugins; import io.reactivex.subjects.UnicastSubject; import java.util.Iterator; import java.util.LinkedHashMap; import java.util.Map; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicReference; /* loaded from: classes2.dex */ public final class ObservableGroupJoin extends AbstractObservableWithUpstream { final ObservableSource b; final Function> c; final Function> d; final BiFunction, ? extends R> e; static final class GroupJoinDisposable extends AtomicInteger implements Disposable, JoinSupport { static final Integer n = 1; static final Integer o = 2; static final Integer p = 3; static final Integer q = 4; final Observer a; final Function> g; final Function> h; final BiFunction, ? extends R> i; int k; int l; volatile boolean m; final CompositeDisposable c = new CompositeDisposable(); final SpscLinkedArrayQueue b = new SpscLinkedArrayQueue<>(Observable.bufferSize()); final Map> d = new LinkedHashMap(); final Map e = new LinkedHashMap(); final AtomicReference f = new AtomicReference<>(); final AtomicInteger j = new AtomicInteger(2); GroupJoinDisposable(Observer observer, Function> function, Function> function2, BiFunction, ? extends R> biFunction) { this.a = observer; this.g = function; this.h = function2; this.i = biFunction; } void a() { this.c.dispose(); } void b() { if (getAndIncrement() != 0) { return; } SpscLinkedArrayQueue spscLinkedArrayQueue = this.b; Observer observer = this.a; int i = 1; while (!this.m) { if (this.f.get() != null) { spscLinkedArrayQueue.clear(); a(); a(observer); return; } boolean z = this.j.get() == 0; Integer num = (Integer) spscLinkedArrayQueue.poll(); boolean z2 = num == null; if (z && z2) { Iterator> it = this.d.values().iterator(); while (it.hasNext()) { it.next().onComplete(); } this.d.clear(); this.e.clear(); this.c.dispose(); observer.onComplete(); return; } if (z2) { i = addAndGet(-i); if (i == 0) { return; } } else { Object poll = spscLinkedArrayQueue.poll(); if (num == n) { UnicastSubject d = UnicastSubject.d(); int i2 = this.k; this.k = i2 + 1; this.d.put(Integer.valueOf(i2), d); try { ObservableSource apply = this.g.apply(poll); ObjectHelper.a(apply, "The leftEnd returned a null ObservableSource"); ObservableSource observableSource = apply; LeftRightEndObserver leftRightEndObserver = new LeftRightEndObserver(this, true, i2); this.c.b(leftRightEndObserver); observableSource.subscribe(leftRightEndObserver); if (this.f.get() != null) { spscLinkedArrayQueue.clear(); a(); a(observer); return; } try { R apply2 = this.i.apply(poll, d); ObjectHelper.a(apply2, "The resultSelector returned a null value"); observer.onNext(apply2); Iterator it2 = this.e.values().iterator(); while (it2.hasNext()) { d.onNext(it2.next()); } } catch (Throwable th) { a(th, observer, spscLinkedArrayQueue); return; } } catch (Throwable th2) { a(th2, observer, spscLinkedArrayQueue); return; } } else if (num == o) { int i3 = this.l; this.l = i3 + 1; this.e.put(Integer.valueOf(i3), poll); try { ObservableSource apply3 = this.h.apply(poll); ObjectHelper.a(apply3, "The rightEnd returned a null ObservableSource"); ObservableSource observableSource2 = apply3; LeftRightEndObserver leftRightEndObserver2 = new LeftRightEndObserver(this, false, i3); this.c.b(leftRightEndObserver2); observableSource2.subscribe(leftRightEndObserver2); if (this.f.get() != null) { spscLinkedArrayQueue.clear(); a(); a(observer); return; } else { Iterator> it3 = this.d.values().iterator(); while (it3.hasNext()) { it3.next().onNext(poll); } } } catch (Throwable th3) { a(th3, observer, spscLinkedArrayQueue); return; } } else if (num == p) { LeftRightEndObserver leftRightEndObserver3 = (LeftRightEndObserver) poll; UnicastSubject remove = this.d.remove(Integer.valueOf(leftRightEndObserver3.c)); this.c.a(leftRightEndObserver3); if (remove != null) { remove.onComplete(); } } else if (num == q) { LeftRightEndObserver leftRightEndObserver4 = (LeftRightEndObserver) poll; this.e.remove(Integer.valueOf(leftRightEndObserver4.c)); this.c.a(leftRightEndObserver4); } } } spscLinkedArrayQueue.clear(); } @Override // io.reactivex.disposables.Disposable public void dispose() { if (this.m) { return; } this.m = true; a(); if (getAndIncrement() == 0) { this.b.clear(); } } void a(Observer observer) { Throwable a = ExceptionHelper.a(this.f); Iterator> it = this.d.values().iterator(); while (it.hasNext()) { it.next().onError(a); } this.d.clear(); this.e.clear(); observer.onError(a); } void a(Throwable th, Observer observer, SpscLinkedArrayQueue spscLinkedArrayQueue) { Exceptions.b(th); ExceptionHelper.a(this.f, th); spscLinkedArrayQueue.clear(); a(); a(observer); } @Override // io.reactivex.internal.operators.observable.ObservableGroupJoin.JoinSupport public void a(LeftRightObserver leftRightObserver) { this.c.c(leftRightObserver); this.j.decrementAndGet(); b(); } @Override // io.reactivex.internal.operators.observable.ObservableGroupJoin.JoinSupport public void a(boolean z, Object obj) { synchronized (this) { this.b.a(z ? n : o, (Integer) obj); } b(); } @Override // io.reactivex.internal.operators.observable.ObservableGroupJoin.JoinSupport public void a(boolean z, LeftRightEndObserver leftRightEndObserver) { synchronized (this) { this.b.a(z ? p : q, (Integer) leftRightEndObserver); } b(); } @Override // io.reactivex.internal.operators.observable.ObservableGroupJoin.JoinSupport public void a(Throwable th) { if (ExceptionHelper.a(this.f, th)) { b(); } else { RxJavaPlugins.b(th); } } @Override // io.reactivex.internal.operators.observable.ObservableGroupJoin.JoinSupport public void b(Throwable th) { if (ExceptionHelper.a(this.f, th)) { this.j.decrementAndGet(); b(); } else { RxJavaPlugins.b(th); } } } interface JoinSupport { void a(LeftRightObserver leftRightObserver); void a(Throwable th); void a(boolean z, LeftRightEndObserver leftRightEndObserver); void a(boolean z, Object obj); void b(Throwable th); } static final class LeftRightEndObserver extends AtomicReference implements Observer, Disposable { final JoinSupport a; final boolean b; final int c; LeftRightEndObserver(JoinSupport joinSupport, boolean z, int i) { this.a = joinSupport; this.b = z; this.c = i; } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this); } @Override // io.reactivex.Observer public void onComplete() { this.a.a(this.b, this); } @Override // io.reactivex.Observer public void onError(Throwable th) { this.a.a(th); } @Override // io.reactivex.Observer public void onNext(Object obj) { if (DisposableHelper.dispose(this)) { this.a.a(this.b, this); } } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } } static final class LeftRightObserver extends AtomicReference implements Observer, Disposable { final JoinSupport a; final boolean b; LeftRightObserver(JoinSupport joinSupport, boolean z) { this.a = joinSupport; this.b = z; } @Override // io.reactivex.disposables.Disposable public void dispose() { DisposableHelper.dispose(this); } @Override // io.reactivex.Observer public void onComplete() { this.a.a(this); } @Override // io.reactivex.Observer public void onError(Throwable th) { this.a.b(th); } @Override // io.reactivex.Observer public void onNext(Object obj) { this.a.a(this.b, obj); } @Override // io.reactivex.Observer public void onSubscribe(Disposable disposable) { DisposableHelper.setOnce(this, disposable); } } public ObservableGroupJoin(ObservableSource observableSource, ObservableSource observableSource2, Function> function, Function> function2, BiFunction, ? extends R> biFunction) { super(observableSource); this.b = observableSource2; this.c = function; this.d = function2; this.e = biFunction; } @Override // io.reactivex.Observable protected void subscribeActual(Observer observer) { GroupJoinDisposable groupJoinDisposable = new GroupJoinDisposable(observer, this.c, this.d, this.e); observer.onSubscribe(groupJoinDisposable); LeftRightObserver leftRightObserver = new LeftRightObserver(groupJoinDisposable, true); groupJoinDisposable.c.b(leftRightObserver); LeftRightObserver leftRightObserver2 = new LeftRightObserver(groupJoinDisposable, false); groupJoinDisposable.c.b(leftRightObserver2); this.a.subscribe(leftRightObserver); this.b.subscribe(leftRightObserver2); } }