- Added realracing3-community.apk (71.57 MB) - Removed 32-bit support (armeabi-v7a) - Only includes arm64-v8a libraries - Decompiled source code included - Added README-community.md with analysis
59 lines
2.5 KiB
Java
59 lines
2.5 KiB
Java
package kotlinx.coroutines.internal;
|
|
|
|
import androidx.concurrent.futures.AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0;
|
|
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
|
|
|
|
/* loaded from: classes5.dex */
|
|
public class LockFreeTaskQueue {
|
|
public static final AtomicReferenceFieldUpdater _cur$FU = AtomicReferenceFieldUpdater.newUpdater(LockFreeTaskQueue.class, Object.class, "_cur");
|
|
private volatile Object _cur;
|
|
|
|
public LockFreeTaskQueue(boolean z) {
|
|
this._cur = new LockFreeTaskQueueCore(8, z);
|
|
}
|
|
|
|
public final int getSize() {
|
|
return ((LockFreeTaskQueueCore) _cur$FU.get(this)).getSize();
|
|
}
|
|
|
|
public final void close() {
|
|
AtomicReferenceFieldUpdater atomicReferenceFieldUpdater = _cur$FU;
|
|
while (true) {
|
|
LockFreeTaskQueueCore lockFreeTaskQueueCore = (LockFreeTaskQueueCore) atomicReferenceFieldUpdater.get(this);
|
|
if (lockFreeTaskQueueCore.close()) {
|
|
return;
|
|
} else {
|
|
AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_cur$FU, this, lockFreeTaskQueueCore, lockFreeTaskQueueCore.next());
|
|
}
|
|
}
|
|
}
|
|
|
|
public final boolean addLast(Object obj) {
|
|
AtomicReferenceFieldUpdater atomicReferenceFieldUpdater = _cur$FU;
|
|
while (true) {
|
|
LockFreeTaskQueueCore lockFreeTaskQueueCore = (LockFreeTaskQueueCore) atomicReferenceFieldUpdater.get(this);
|
|
int addLast = lockFreeTaskQueueCore.addLast(obj);
|
|
if (addLast == 0) {
|
|
return true;
|
|
}
|
|
if (addLast == 1) {
|
|
AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_cur$FU, this, lockFreeTaskQueueCore, lockFreeTaskQueueCore.next());
|
|
} else if (addLast == 2) {
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
public final Object removeFirstOrNull() {
|
|
AtomicReferenceFieldUpdater atomicReferenceFieldUpdater = _cur$FU;
|
|
while (true) {
|
|
LockFreeTaskQueueCore lockFreeTaskQueueCore = (LockFreeTaskQueueCore) atomicReferenceFieldUpdater.get(this);
|
|
Object removeFirstOrNull = lockFreeTaskQueueCore.removeFirstOrNull();
|
|
if (removeFirstOrNull != LockFreeTaskQueueCore.REMOVE_FROZEN) {
|
|
return removeFirstOrNull;
|
|
}
|
|
AbstractResolvableFuture$SafeAtomicHelper$$ExternalSyntheticBackportWithForwarding0.m(_cur$FU, this, lockFreeTaskQueueCore, lockFreeTaskQueueCore.next());
|
|
}
|
|
}
|
|
}
|