You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

268 lines
8.1 KiB

package kotlinx.coroutines.internal;
import java.util.concurrent.atomic.AtomicLongFieldUpdater;
import java.util.concurrent.atomic.AtomicReferenceArray;
import java.util.concurrent.atomic.AtomicReferenceFieldUpdater;
import p039m1.C1468e;
import p060t1.C1679h;
/* renamed from: kotlinx.coroutines.internal.n */
/* loaded from: classes.dex */
public final class C1373n<E> {
private volatile /* synthetic */ Object _next = null;
private volatile /* synthetic */ long _state = 0;
/* renamed from: a */
public final int f3053a;
/* renamed from: b */
public final boolean f3054b;
/* renamed from: c */
public final int f3055c;
/* renamed from: d */
public /* synthetic */ AtomicReferenceArray f3056d;
/* renamed from: e */
public static final C1374a f3049e = new C1374a(null);
/* renamed from: h */
public static final C1384w f3052h = new C1384w("REMOVE_FROZEN");
/* renamed from: f */
public static final /* synthetic */ AtomicReferenceFieldUpdater f3050f = AtomicReferenceFieldUpdater.newUpdater(C1373n.class, Object.class, "_next");
/* renamed from: g */
public static final /* synthetic */ AtomicLongFieldUpdater f3051g = AtomicLongFieldUpdater.newUpdater(C1373n.class, "_state");
/* renamed from: kotlinx.coroutines.internal.n$a */
/* loaded from: classes.dex */
public static final class C1374a {
public C1374a() {
}
public /* synthetic */ C1374a(C1468e c1468e) {
this();
}
/* renamed from: a */
public final int m1499a(long j) {
return (j & 2305843009213693952L) != 0 ? 2 : 1;
}
/* renamed from: b */
public final long m1498b(long j, int i) {
return m1496d(j, 1073741823L) | (i << 0);
}
/* renamed from: c */
public final long m1497c(long j, int i) {
return m1496d(j, 1152921503533105152L) | (i << 30);
}
/* renamed from: d */
public final long m1496d(long j, long j2) {
return j & (j2 ^ (-1));
}
}
/* renamed from: kotlinx.coroutines.internal.n$b */
/* loaded from: classes.dex */
public static final class C1375b {
/* renamed from: a */
public final int f3057a;
public C1375b(int i) {
this.f3057a = i;
}
}
public C1373n(int i, boolean z) {
this.f3053a = i;
this.f3054b = z;
int i2 = i - 1;
this.f3055c = i2;
this.f3056d = new AtomicReferenceArray(i);
if (!(i2 <= 1073741823)) {
throw new IllegalStateException("Check failed.".toString());
}
if (!((i & i2) == 0)) {
throw new IllegalStateException("Check failed.".toString());
}
}
/* JADX WARN: Code restructure failed: missing block: B:17:0x004c, code lost:
return 1;
*/
/* renamed from: a */
/*
Code decompiled incorrectly, please refer to instructions dump.
*/
public final int m1510a(E e) {
while (true) {
long j = this._state;
if ((3458764513820540928L & j) != 0) {
return f3049e.m1499a(j);
}
int i = (int) ((1073741823 & j) >> 0);
int i2 = (int) ((1152921503533105152L & j) >> 30);
int i3 = this.f3055c;
if (((i2 + 2) & i3) == (i & i3)) {
return 1;
}
if (!this.f3054b && this.f3056d.get(i2 & i3) != null) {
int i4 = this.f3053a;
if (i4 < 1024 || ((i2 - i) & 1073741823) > (i4 >> 1)) {
break;
}
} else if (f3051g.compareAndSet(this, j, f3049e.m1497c(j, (i2 + 1) & 1073741823))) {
this.f3056d.set(i2 & i3, e);
C1373n<E> c1373n = this;
while ((c1373n._state & 1152921504606846976L) != 0 && (c1373n = c1373n.m1502i().m1506e(i2, e)) != null) {
}
return 0;
}
}
}
/* JADX WARN: Multi-variable type inference failed */
/* renamed from: b */
public final C1373n<E> m1509b(long j) {
C1373n<E> c1373n = new C1373n<>(this.f3053a * 2, this.f3054b);
int i = (int) ((1073741823 & j) >> 0);
int i2 = (int) ((1152921503533105152L & j) >> 30);
while (true) {
int i3 = this.f3055c;
if ((i & i3) == (i2 & i3)) {
c1373n._state = f3049e.m1496d(j, 1152921504606846976L);
return c1373n;
}
Object obj = this.f3056d.get(i3 & i);
if (obj == null) {
obj = new C1375b(i);
}
c1373n.f3056d.set(c1373n.f3055c & i, obj);
i++;
}
}
/* renamed from: c */
public final C1373n<E> m1508c(long j) {
while (true) {
C1373n<E> c1373n = (C1373n) this._next;
if (c1373n != null) {
return c1373n;
}
C1679h.m602a(f3050f, this, null, m1509b(j));
}
}
/* renamed from: d */
public final boolean m1507d() {
long j;
do {
j = this._state;
if ((j & 2305843009213693952L) != 0) {
return true;
}
if ((1152921504606846976L & j) != 0) {
return false;
}
} while (!f3051g.compareAndSet(this, j, j | 2305843009213693952L));
return true;
}
/* renamed from: e */
public final C1373n<E> m1506e(int i, E e) {
Object obj = this.f3056d.get(this.f3055c & i);
if ((obj instanceof C1375b) && ((C1375b) obj).f3057a == i) {
this.f3056d.set(i & this.f3055c, e);
return this;
}
return null;
}
/* renamed from: f */
public final int m1505f() {
long j = this._state;
return 1073741823 & (((int) ((j & 1152921503533105152L) >> 30)) - ((int) ((1073741823 & j) >> 0)));
}
/* renamed from: g */
public final boolean m1504g() {
long j = this._state;
return ((int) ((1073741823 & j) >> 0)) == ((int) ((j & 1152921503533105152L) >> 30));
}
/* renamed from: h */
public final long m1503h() {
long j;
long j2;
do {
j = this._state;
if ((j & 1152921504606846976L) != 0) {
return j;
}
j2 = j | 1152921504606846976L;
} while (!f3051g.compareAndSet(this, j, j2));
return j2;
}
/* renamed from: i */
public final C1373n<E> m1502i() {
return m1508c(m1503h());
}
/* renamed from: j */
public final Object m1501j() {
while (true) {
long j = this._state;
if ((1152921504606846976L & j) != 0) {
return f3052h;
}
int i = (int) ((1073741823 & j) >> 0);
int i2 = (int) ((1152921503533105152L & j) >> 30);
int i3 = this.f3055c;
if ((i2 & i3) == (i & i3)) {
return null;
}
Object obj = this.f3056d.get(i3 & i);
if (obj == null) {
if (this.f3054b) {
return null;
}
} else if (obj instanceof C1375b) {
return null;
} else {
int i4 = (i + 1) & 1073741823;
if (f3051g.compareAndSet(this, j, f3049e.m1498b(j, i4))) {
this.f3056d.set(this.f3055c & i, null);
return obj;
} else if (this.f3054b) {
C1373n<E> c1373n = this;
do {
c1373n = c1373n.m1500k(i, i4);
} while (c1373n != null);
return obj;
}
}
}
}
/* renamed from: k */
public final C1373n<E> m1500k(int i, int i2) {
long j;
int i3;
do {
j = this._state;
i3 = (int) ((1073741823 & j) >> 0);
if ((1152921504606846976L & j) != 0) {
return m1502i();
}
} while (!f3051g.compareAndSet(this, j, f3049e.m1498b(j, i2)));
this.f3056d.set(i3 & this.f3055c, null);
return null;
}
}