d.smali
.class public Ljb/d;
.super Ljava/lang/Object;
.source "SourceFile"
# annotations
.annotation runtime Lkotlin/Metadata;
.end annotation
# static fields
.field private static final c:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private static final d:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private static final e:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private static final f:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private static final g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
# instance fields
.field private volatile _availablePermits:I
.field private final a:I
.field private final b:Lkotlin/jvm/functions/Function1;
.annotation system Ldalvik/annotation/Signature;
value = {
"Lkotlin/jvm/functions/Function1<",
"Ljava/lang/Throwable;",
"Lkotlin/Unit;",
">;"
}
.end annotation
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end field
.field private volatile deqIdx:J
.field private volatile enqIdx:J
.field private volatile head:Ljava/lang/Object;
.field private volatile tail:Ljava/lang/Object;
# direct methods
.method static constructor <clinit>()V
.registers 3
const-string v0, "head"
const-class v1, Ljb/d;
const-class v2, Ljava/lang/Object;
invoke-static {v1, v2, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
move-result-object v0
sput-object v0, Ljb/d;->c:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
const-string v0, "deqIdx"
invoke-static {v1, v0}, Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
move-result-object v0
sput-object v0, Ljb/d;->d:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
const-string v0, "tail"
invoke-static {v1, v2, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
move-result-object v0
sput-object v0, Ljb/d;->e:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
const-string v0, "enqIdx"
invoke-static {v1, v0}, Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
move-result-object v0
sput-object v0, Ljb/d;->f:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
const-string v0, "_availablePermits"
invoke-static {v1, v0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->newUpdater(Ljava/lang/Class;Ljava/lang/String;)Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
move-result-object v0
sput-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
return-void
.end method
.method public constructor <init>(II)V
.registers 8
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
iput p1, p0, Ljb/d;->a:I
const/4 v0, 0x1
const/4 v1, 0x0
if-lez p1, :cond_b
const/4 v2, 0x1
goto :goto_c
:cond_b
const/4 v2, 0x0
:goto_c
if-eqz v2, :cond_49
if-ltz p2, :cond_13
if-gt p2, p1, :cond_13
goto :goto_14
:cond_13
const/4 v0, 0x0
:goto_14
if-eqz v0, :cond_2e
new-instance v0, Ljb/f;
const/4 v1, 0x0
const/4 v2, 0x2
const-wide/16 v3, 0x0
invoke-direct {v0, v3, v4, v1, v2}, Ljb/f;-><init>(JLjb/f;I)V
iput-object v0, p0, Ljb/d;->head:Ljava/lang/Object;
iput-object v0, p0, Ljb/d;->tail:Ljava/lang/Object;
sub-int/2addr p1, p2
iput p1, p0, Ljb/d;->_availablePermits:I
new-instance p1, Ljb/d$b;
invoke-direct {p1, p0}, Ljb/d$b;-><init>(Ljb/d;)V
iput-object p1, p0, Ljb/d;->b:Lkotlin/jvm/functions/Function1;
return-void
:cond_2e
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "The number of acquired permits should be in 0.."
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance p2, Ljava/lang/IllegalArgumentException;
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p2
:cond_49
new-instance p2, Ljava/lang/StringBuilder;
invoke-direct {p2}, Ljava/lang/StringBuilder;-><init>()V
const-string v0, "Semaphore should have at least 1 permit, but had "
invoke-virtual {p2, v0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {p2, p1}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {p2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
new-instance p2, Ljava/lang/IllegalArgumentException;
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {p2, p1}, Ljava/lang/IllegalArgumentException;-><init>(Ljava/lang/String;)V
throw p2
.end method
.method private final e(Lbb/u2;)Z
.registers 19
move-object/from16 v0, p0
move-object/from16 v1, p1
sget-object v2, Ljb/d;->e:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v3
check-cast v3, Ljb/f;
sget-object v4, Ljb/d;->f:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
invoke-virtual {v4, v0}, Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;->getAndIncrement(Ljava/lang/Object;)J
move-result-wide v4
sget-object v6, Ljb/d$a;->j:Ljb/d$a;
invoke-static {}, Ljb/e;->f()I
move-result v7
int-to-long v7, v7
div-long v7, v4, v7
:cond_1b
invoke-static {v3, v7, v8, v6}, Lfb/e;->c(Lfb/h0;JLkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object v9
invoke-static {v9}, Lfb/i0;->c(Ljava/lang/Object;)Z
move-result v10
if-nez v10, :cond_5e
invoke-static {v9}, Lfb/i0;->b(Ljava/lang/Object;)Lfb/h0;
move-result-object v10
:cond_29
:goto_29
invoke-virtual {v2, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v13
check-cast v13, Lfb/h0;
iget-wide v14, v13, Lfb/h0;->c:J
iget-wide v11, v10, Lfb/h0;->c:J
cmp-long v16, v14, v11
if-ltz v16, :cond_39
:cond_37
:goto_37
const/4 v10, 0x1
goto :goto_51
:cond_39
invoke-virtual {v10}, Lfb/h0;->q()Z
move-result v11
if-nez v11, :cond_41
const/4 v10, 0x0
goto :goto_51
:cond_41
invoke-static {v2, v0, v13, v10}, Landroidx/concurrent/futures/b;->a(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v11
if-eqz v11, :cond_54
invoke-virtual {v13}, Lfb/h0;->m()Z
move-result v10
if-eqz v10, :cond_37
invoke-virtual {v13}, Lfb/f;->k()V
goto :goto_37
:goto_51
if-eqz v10, :cond_1b
goto :goto_5e
:cond_54
invoke-virtual {v10}, Lfb/h0;->m()Z
move-result v11
if-eqz v11, :cond_29
invoke-virtual {v10}, Lfb/f;->k()V
goto :goto_29
:cond_5e
:goto_5e
invoke-static {v9}, Lfb/i0;->b(Ljava/lang/Object;)Lfb/h0;
move-result-object v2
check-cast v2, Ljb/f;
invoke-static {}, Ljb/e;->f()I
move-result v3
int-to-long v6, v3
rem-long/2addr v4, v6
long-to-int v3, v4
invoke-virtual {v2}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v4
const/4 v5, 0x0
invoke-static {v4, v3, v5, v1}, Lcb/g;->a(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_7b
invoke-interface {v1, v2, v3}, Lbb/u2;->c(Lfb/h0;I)V
const/4 v1, 0x1
return v1
:cond_7b
invoke-static {}, Ljb/e;->e()Lfb/k0;
move-result-object v4
invoke-static {}, Ljb/e;->g()Lfb/k0;
move-result-object v5
invoke-virtual {v2}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v6
invoke-static {v6, v3, v4, v5}, Lcb/g;->a(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v4
if-eqz v4, :cond_c9
instance-of v2, v1, Lbb/l;
if-eqz v2, :cond_a1
const-string v2, "null cannot be cast to non-null type kotlinx.coroutines.CancellableContinuation<kotlin.Unit>"
invoke-static {v1, v2}, Lkotlin/jvm/internal/Intrinsics;->d(Ljava/lang/Object;Ljava/lang/String;)V
check-cast v1, Lbb/l;
sget-object v2, Lkotlin/Unit;->a:Lkotlin/Unit;
iget-object v3, v0, Ljb/d;->b:Lkotlin/jvm/functions/Function1;
invoke-interface {v1, v2, v3}, Lbb/l;->u(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
:goto_9f
const/4 v1, 0x1
goto :goto_ad
:cond_a1
instance-of v2, v1, Lib/b;
if-eqz v2, :cond_ae
check-cast v1, Lib/b;
sget-object v2, Lkotlin/Unit;->a:Lkotlin/Unit;
invoke-interface {v1, v2}, Lib/b;->h(Ljava/lang/Object;)V
goto :goto_9f
:goto_ad
return v1
:cond_ae
new-instance v2, Ljava/lang/IllegalStateException;
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "unexpected: "
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, v1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v2, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v2
:cond_c9
const/4 v1, 0x1
invoke-static {}, Lbb/q0;->a()Z
move-result v4
if-eqz v4, :cond_ea
invoke-virtual {v2}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v2
invoke-virtual {v2, v3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v2
invoke-static {}, Ljb/e;->b()Lfb/k0;
move-result-object v3
if-ne v2, v3, :cond_e0
const/4 v12, 0x1
goto :goto_e1
:cond_e0
const/4 v12, 0x0
:goto_e1
if-eqz v12, :cond_e4
goto :goto_ea
:cond_e4
new-instance v1, Ljava/lang/AssertionError;
invoke-direct {v1}, Ljava/lang/AssertionError;-><init>()V
throw v1
:cond_ea
:goto_ea
const/4 v1, 0x0
return v1
.end method
.method private final f()V
.registers 4
:cond_0
sget-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v1
iget v2, p0, Ljb/d;->a:I
if-le v1, v2, :cond_10
invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v0
if-eqz v0, :cond_0
:cond_10
return-void
.end method
.method private final g()I
.registers 3
:cond_0
sget-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->getAndDecrement(Ljava/lang/Object;)I
move-result v0
iget v1, p0, Ljb/d;->a:I
if-gt v0, v1, :cond_0
return v0
.end method
.method private final k(Ljava/lang/Object;)Z
.registers 5
instance-of v0, p1, Lbb/l;
if-eqz v0, :cond_1d
const-string v0, "null cannot be cast to non-null type kotlinx.coroutines.CancellableContinuation<kotlin.Unit>"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->d(Ljava/lang/Object;Ljava/lang/String;)V
check-cast p1, Lbb/l;
sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit;
const/4 v1, 0x0
iget-object v2, p0, Ljb/d;->b:Lkotlin/jvm/functions/Function1;
invoke-interface {p1, v0, v1, v2}, Lbb/l;->r(Ljava/lang/Object;Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)Ljava/lang/Object;
move-result-object v0
if-eqz v0, :cond_1b
invoke-interface {p1, v0}, Lbb/l;->A(Ljava/lang/Object;)V
const/4 p1, 0x1
goto :goto_29
:cond_1b
const/4 p1, 0x0
goto :goto_29
:cond_1d
instance-of v0, p1, Lib/b;
if-eqz v0, :cond_2a
check-cast p1, Lib/b;
sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit;
invoke-interface {p1, p0, v0}, Lib/b;->e(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result p1
:goto_29
return p1
:cond_2a
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "unexpected: "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v1, p1}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p1
invoke-virtual {p1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object p1
invoke-direct {v0, p1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
throw v0
.end method
.method private final l()Z
.registers 17
move-object/from16 v0, p0
sget-object v1, Ljb/d;->c:Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;
invoke-virtual {v1, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v2
check-cast v2, Ljb/f;
sget-object v3, Ljb/d;->d:Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;
invoke-virtual {v3, v0}, Ljava/util/concurrent/atomic/AtomicLongFieldUpdater;->getAndIncrement(Ljava/lang/Object;)J
move-result-wide v3
invoke-static {}, Ljb/e;->f()I
move-result v5
int-to-long v5, v5
div-long v5, v3, v5
sget-object v7, Ljb/d$c;->j:Ljb/d$c;
:cond_19
invoke-static {v2, v5, v6, v7}, Lfb/e;->c(Lfb/h0;JLkotlin/jvm/functions/Function2;)Ljava/lang/Object;
move-result-object v8
invoke-static {v8}, Lfb/i0;->c(Ljava/lang/Object;)Z
move-result v9
if-nez v9, :cond_5c
invoke-static {v8}, Lfb/i0;->b(Ljava/lang/Object;)Lfb/h0;
move-result-object v9
:cond_27
:goto_27
invoke-virtual {v1, v0}, Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v12
check-cast v12, Lfb/h0;
iget-wide v13, v12, Lfb/h0;->c:J
iget-wide v10, v9, Lfb/h0;->c:J
cmp-long v15, v13, v10
if-ltz v15, :cond_37
:cond_35
:goto_35
const/4 v9, 0x1
goto :goto_4f
:cond_37
invoke-virtual {v9}, Lfb/h0;->q()Z
move-result v10
if-nez v10, :cond_3f
const/4 v9, 0x0
goto :goto_4f
:cond_3f
invoke-static {v1, v0, v12, v9}, Landroidx/concurrent/futures/b;->a(Ljava/util/concurrent/atomic/AtomicReferenceFieldUpdater;Ljava/lang/Object;Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v10
if-eqz v10, :cond_52
invoke-virtual {v12}, Lfb/h0;->m()Z
move-result v9
if-eqz v9, :cond_35
invoke-virtual {v12}, Lfb/f;->k()V
goto :goto_35
:goto_4f
if-eqz v9, :cond_19
goto :goto_5c
:cond_52
invoke-virtual {v9}, Lfb/h0;->m()Z
move-result v10
if-eqz v10, :cond_27
invoke-virtual {v9}, Lfb/f;->k()V
goto :goto_27
:cond_5c
:goto_5c
invoke-static {v8}, Lfb/i0;->b(Ljava/lang/Object;)Lfb/h0;
move-result-object v1
check-cast v1, Ljb/f;
invoke-virtual {v1}, Lfb/f;->b()V
iget-wide v7, v1, Lfb/h0;->c:J
cmp-long v2, v7, v5
if-lez v2, :cond_6d
const/4 v2, 0x0
return v2
:cond_6d
invoke-static {}, Ljb/e;->f()I
move-result v2
int-to-long v5, v2
rem-long/2addr v3, v5
long-to-int v2, v3
invoke-static {}, Ljb/e;->e()Lfb/k0;
move-result-object v3
invoke-virtual {v1}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v4
invoke-virtual {v4, v2, v3}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->getAndSet(ILjava/lang/Object;)Ljava/lang/Object;
move-result-object v3
if-nez v3, :cond_b0
invoke-static {}, Ljb/e;->d()I
move-result v3
const/4 v10, 0x0
:goto_87
if-ge v10, v3, :cond_9d
invoke-virtual {v1}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v4
invoke-virtual {v4, v2}, Ljava/util/concurrent/atomic/AtomicReferenceArray;->get(I)Ljava/lang/Object;
move-result-object v4
invoke-static {}, Ljb/e;->g()Lfb/k0;
move-result-object v5
if-ne v4, v5, :cond_99
const/4 v4, 0x1
return v4
:cond_99
const/4 v4, 0x1
add-int/lit8 v10, v10, 0x1
goto :goto_87
:cond_9d
const/4 v4, 0x1
invoke-static {}, Ljb/e;->e()Lfb/k0;
move-result-object v3
invoke-static {}, Ljb/e;->b()Lfb/k0;
move-result-object v5
invoke-virtual {v1}, Ljb/f;->r()Ljava/util/concurrent/atomic/AtomicReferenceArray;
move-result-object v1
invoke-static {v1, v2, v3, v5}, Lcb/g;->a(Ljava/util/concurrent/atomic/AtomicReferenceArray;ILjava/lang/Object;Ljava/lang/Object;)Z
move-result v1
xor-int/2addr v1, v4
return v1
:cond_b0
invoke-static {}, Ljb/e;->c()Lfb/k0;
move-result-object v1
if-ne v3, v1, :cond_b8
const/4 v1, 0x0
return v1
:cond_b8
invoke-direct {v0, v3}, Ljb/d;->k(Ljava/lang/Object;)Z
move-result v1
return v1
.end method
# virtual methods
.method protected final d(Lbb/l;)V
.registers 4
.param p1 # Lbb/l;
.annotation build Lorg/jetbrains/annotations/NotNull;
.end annotation
.end param
.annotation system Ldalvik/annotation/Signature;
value = {
"(",
"Lbb/l<",
"-",
"Lkotlin/Unit;",
">;)V"
}
.end annotation
:cond_0
invoke-direct {p0}, Ljb/d;->g()I
move-result v0
if-lez v0, :cond_e
sget-object v0, Lkotlin/Unit;->a:Lkotlin/Unit;
iget-object v1, p0, Ljb/d;->b:Lkotlin/jvm/functions/Function1;
invoke-interface {p1, v0, v1}, Lbb/l;->u(Ljava/lang/Object;Lkotlin/jvm/functions/Function1;)V
goto :goto_1c
:cond_e
const-string v0, "null cannot be cast to non-null type kotlinx.coroutines.Waiter"
invoke-static {p1, v0}, Lkotlin/jvm/internal/Intrinsics;->d(Ljava/lang/Object;Ljava/lang/String;)V
move-object v0, p1
check-cast v0, Lbb/u2;
invoke-direct {p0, v0}, Ljb/d;->e(Lbb/u2;)Z
move-result v0
if-eqz v0, :cond_0
:goto_1c
return-void
.end method
.method public h()I
.registers 3
sget-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v0
const/4 v1, 0x0
invoke-static {v0, v1}, Ljava/lang/Math;->max(II)I
move-result v0
return v0
.end method
.method public i()V
.registers 4
:cond_0
sget-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->getAndIncrement(Ljava/lang/Object;)I
move-result v0
iget v1, p0, Ljb/d;->a:I
if-ge v0, v1, :cond_14
if-ltz v0, :cond_d
return-void
:cond_d
invoke-direct {p0}, Ljb/d;->l()Z
move-result v0
if-eqz v0, :cond_0
return-void
:cond_14
invoke-direct {p0}, Ljb/d;->f()V
new-instance v0, Ljava/lang/IllegalStateException;
new-instance v1, Ljava/lang/StringBuilder;
invoke-direct {v1}, Ljava/lang/StringBuilder;-><init>()V
const-string v2, "The number of released permits cannot be greater than "
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
iget v2, p0, Ljb/d;->a:I
invoke-virtual {v1, v2}, Ljava/lang/StringBuilder;->append(I)Ljava/lang/StringBuilder;
invoke-virtual {v1}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v1
invoke-virtual {v1}, Ljava/lang/Object;->toString()Ljava/lang/String;
move-result-object v1
invoke-direct {v0, v1}, Ljava/lang/IllegalStateException;-><init>(Ljava/lang/String;)V
goto :goto_35
:goto_34
throw v0
:goto_35
goto :goto_34
.end method
.method public j()Z
.registers 4
:cond_0
:goto_0
sget-object v0, Ljb/d;->g:Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;
invoke-virtual {v0, p0}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->get(Ljava/lang/Object;)I
move-result v1
iget v2, p0, Ljb/d;->a:I
if-le v1, v2, :cond_e
invoke-direct {p0}, Ljb/d;->f()V
goto :goto_0
:cond_e
if-gtz v1, :cond_12
const/4 v0, 0x0
return v0
:cond_12
add-int/lit8 v2, v1, -0x1
invoke-virtual {v0, p0, v1, v2}, Ljava/util/concurrent/atomic/AtomicIntegerFieldUpdater;->compareAndSet(Ljava/lang/Object;II)Z
move-result v0
if-eqz v0, :cond_0
const/4 v0, 0x1
return v0
.end method