package io.reactivex.internal.subscribers; import io.reactivex.FlowableSubscriber; import io.reactivex.internal.subscriptions.SubscriptionHelper; import io.reactivex.internal.util.AtomicThrowable; import io.reactivex.internal.util.HalfSerializer; import java.util.concurrent.atomic.AtomicBoolean; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; import java.util.concurrent.atomic.AtomicReference; import org.reactivestreams.Subscriber; import org.reactivestreams.Subscription; /* loaded from: classes2.dex */ public class StrictSubscriber extends AtomicInteger implements FlowableSubscriber, Subscription { private static final long serialVersionUID = -4945028590049415624L; volatile boolean done; final Subscriber downstream; final AtomicThrowable error = new AtomicThrowable(); final AtomicLong requested = new AtomicLong(); final AtomicReference upstream = new AtomicReference<>(); final AtomicBoolean once = new AtomicBoolean(); public StrictSubscriber(Subscriber subscriber) { this.downstream = subscriber; } @Override // org.reactivestreams.Subscription public void cancel() { if (this.done) { return; } SubscriptionHelper.cancel(this.upstream); } @Override // org.reactivestreams.Subscriber public void onComplete() { this.done = true; HalfSerializer.a(this.downstream, this, this.error); } @Override // org.reactivestreams.Subscriber public void onError(Throwable th) { this.done = true; HalfSerializer.a((Subscriber) this.downstream, th, (AtomicInteger) this, this.error); } @Override // org.reactivestreams.Subscriber public void onNext(T t) { HalfSerializer.a(this.downstream, t, this, this.error); } @Override // org.reactivestreams.Subscriber public void onSubscribe(Subscription subscription) { if (this.once.compareAndSet(false, true)) { this.downstream.onSubscribe(this); SubscriptionHelper.deferredSetOnce(this.upstream, this.requested, subscription); } else { subscription.cancel(); cancel(); onError(new IllegalStateException("§2.12 violated: onSubscribe must be called at most once")); } } @Override // org.reactivestreams.Subscription public void request(long j) { if (j > 0) { SubscriptionHelper.deferredRequest(this.upstream, this.requested, j); return; } cancel(); onError(new IllegalArgumentException("§3.9 violated: positive request amount required but it was " + j)); } }