jimu-decompiled/sources/io/reactivex/internal/disposables/ArrayCompositeDisposable.java
2025-05-13 19:24:51 +02:00

61 lines
1.9 KiB
Java

package io.reactivex.internal.disposables;
import io.reactivex.disposables.Disposable;
import java.util.concurrent.atomic.AtomicReferenceArray;
/* loaded from: classes2.dex */
public final class ArrayCompositeDisposable extends AtomicReferenceArray<Disposable> implements Disposable {
private static final long serialVersionUID = 2746389416410565408L;
public ArrayCompositeDisposable(int i) {
super(i);
}
@Override // io.reactivex.disposables.Disposable
public void dispose() {
Disposable andSet;
if (get(0) != DisposableHelper.DISPOSED) {
int length = length();
for (int i = 0; i < length; i++) {
Disposable disposable = get(i);
DisposableHelper disposableHelper = DisposableHelper.DISPOSED;
if (disposable != disposableHelper && (andSet = getAndSet(i, disposableHelper)) != DisposableHelper.DISPOSED && andSet != null) {
andSet.dispose();
}
}
}
}
public boolean isDisposed() {
return get(0) == DisposableHelper.DISPOSED;
}
public Disposable replaceResource(int i, Disposable disposable) {
Disposable disposable2;
do {
disposable2 = get(i);
if (disposable2 == DisposableHelper.DISPOSED) {
disposable.dispose();
return null;
}
} while (!compareAndSet(i, disposable2, disposable));
return disposable2;
}
public boolean setResource(int i, Disposable disposable) {
Disposable disposable2;
do {
disposable2 = get(i);
if (disposable2 == DisposableHelper.DISPOSED) {
disposable.dispose();
return false;
}
} while (!compareAndSet(i, disposable2, disposable));
if (disposable2 == null) {
return true;
}
disposable2.dispose();
return true;
}
}