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

114 lines
3.5 KiB
Java

package io.reactivex.internal.disposables;
import io.reactivex.disposables.Disposable;
import io.reactivex.exceptions.ProtocolViolationException;
import io.reactivex.internal.functions.ObjectHelper;
import io.reactivex.plugins.RxJavaPlugins;
import java.util.concurrent.atomic.AtomicReference;
/* loaded from: classes2.dex */
public enum DisposableHelper implements Disposable {
DISPOSED;
public static boolean dispose(AtomicReference<Disposable> atomicReference) {
Disposable andSet;
Disposable disposable = atomicReference.get();
DisposableHelper disposableHelper = DISPOSED;
if (disposable == disposableHelper || (andSet = atomicReference.getAndSet(disposableHelper)) == disposableHelper) {
return false;
}
if (andSet == null) {
return true;
}
andSet.dispose();
return true;
}
public static boolean isDisposed(Disposable disposable) {
return disposable == DISPOSED;
}
public static boolean replace(AtomicReference<Disposable> atomicReference, Disposable disposable) {
Disposable disposable2;
do {
disposable2 = atomicReference.get();
if (disposable2 == DISPOSED) {
if (disposable == null) {
return false;
}
disposable.dispose();
return false;
}
} while (!atomicReference.compareAndSet(disposable2, disposable));
return true;
}
public static void reportDisposableSet() {
RxJavaPlugins.b(new ProtocolViolationException("Disposable already set!"));
}
public static boolean set(AtomicReference<Disposable> atomicReference, Disposable disposable) {
Disposable disposable2;
do {
disposable2 = atomicReference.get();
if (disposable2 == DISPOSED) {
if (disposable == null) {
return false;
}
disposable.dispose();
return false;
}
} while (!atomicReference.compareAndSet(disposable2, disposable));
if (disposable2 == null) {
return true;
}
disposable2.dispose();
return true;
}
public static boolean setOnce(AtomicReference<Disposable> atomicReference, Disposable disposable) {
ObjectHelper.a(disposable, "d is null");
if (atomicReference.compareAndSet(null, disposable)) {
return true;
}
disposable.dispose();
if (atomicReference.get() == DISPOSED) {
return false;
}
reportDisposableSet();
return false;
}
public static boolean trySet(AtomicReference<Disposable> atomicReference, Disposable disposable) {
if (atomicReference.compareAndSet(null, disposable)) {
return true;
}
if (atomicReference.get() != DISPOSED) {
return false;
}
disposable.dispose();
return false;
}
public static boolean validate(Disposable disposable, Disposable disposable2) {
if (disposable2 == null) {
RxJavaPlugins.b(new NullPointerException("next is null"));
return false;
}
if (disposable == null) {
return true;
}
disposable2.dispose();
reportDisposableSet();
return false;
}
@Override // io.reactivex.disposables.Disposable
public void dispose() {
}
public boolean isDisposed() {
return true;
}
}