alexandroid/decompiled/jadx/sources/io/reactivex/rxjava3/internal/subscriptions/ArrayCompositeSubscription.java
KaKi87 a47fad5135 📦 Add decompiled Alexa 2.2.730155.0 (jadx, apktool, Hermes strings)
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-11-07 00:04:16 +01:00

69 lines
2.4 KiB
Java

package io.reactivex.rxjava3.internal.subscriptions;
import io.reactivex.rxjava3.disposables.Disposable;
import java.util.concurrent.atomic.AtomicReferenceArray;
import org.reactivestreams.Subscription;
/* compiled from: r8-map-id-b9432e0f623b4a4bff4ba50a8a24c4aafad2c1e11092747b9fb5e6a22af5a940 */
/* loaded from: classes10.dex */
public final class ArrayCompositeSubscription extends AtomicReferenceArray<Subscription> implements Disposable {
private static final long serialVersionUID = 2746389416410565408L;
public ArrayCompositeSubscription(int i) {
super(i);
}
@Override // io.reactivex.rxjava3.disposables.Disposable
public void dispose() {
Subscription andSet;
if (get(0) != SubscriptionHelper.CANCELLED) {
int length = length();
for (int i = 0; i < length; i++) {
Subscription subscription = get(i);
SubscriptionHelper subscriptionHelper = SubscriptionHelper.CANCELLED;
if (subscription != subscriptionHelper && (andSet = getAndSet(i, subscriptionHelper)) != subscriptionHelper && andSet != null) {
andSet.cancel();
}
}
}
}
@Override // io.reactivex.rxjava3.disposables.Disposable
public boolean isDisposed() {
return get(0) == SubscriptionHelper.CANCELLED;
}
public Subscription replaceResource(int i, Subscription subscription) {
Subscription subscription2;
do {
subscription2 = get(i);
if (subscription2 == SubscriptionHelper.CANCELLED) {
if (subscription == null) {
return null;
}
subscription.cancel();
return null;
}
} while (!compareAndSet(i, subscription2, subscription));
return subscription2;
}
public boolean setResource(int i, Subscription subscription) {
Subscription subscription2;
do {
subscription2 = get(i);
if (subscription2 == SubscriptionHelper.CANCELLED) {
if (subscription == null) {
return false;
}
subscription.cancel();
return false;
}
} while (!compareAndSet(i, subscription2, subscription));
if (subscription2 == null) {
return true;
}
subscription2.cancel();
return true;
}
}