af.smali
.class public final Lcom/google/common/util/concurrent/af;
.super Ljava/lang/Object;
.source "Monitor.java"
# instance fields
.field private aZa:Lcom/google/common/util/concurrent/ag;
.field final lock:Ljava/util/concurrent/locks/ReentrantLock;
# direct methods
.method public constructor <init>()V
.registers 2
.prologue
.line 339
const/4 v0, 0x0
invoke-direct {p0, v0}, Lcom/google/common/util/concurrent/af;-><init>(B)V
.line 340
return-void
.end method
.method private constructor <init>(B)V
.registers 4
.prologue
.line 348
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 331
const/4 v0, 0x0
iput-object v0, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
.line 350
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
const/4 v1, 0x0
invoke-direct {v0, v1}, Ljava/util/concurrent/locks/ReentrantLock;-><init>(Z)V
iput-object v0, p0, Lcom/google/common/util/concurrent/af;->lock:Ljava/util/concurrent/locks/ReentrantLock;
.line 351
return-void
.end method
.method private a(Lcom/google/common/util/concurrent/ag;Z)V
.registers 4
.prologue
.line 1000
if-eqz p2, :cond_5
.line 1001
invoke-direct {p0}, Lcom/google/common/util/concurrent/af;->ye()V
.line 1003
:cond_5
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->d(Lcom/google/common/util/concurrent/ag;)V
.line 1006
:cond_8
:try_start_8
iget-object v0, p1, Lcom/google/common/util/concurrent/ag;->condition:Ljava/util/concurrent/locks/Condition;
invoke-interface {v0}, Ljava/util/concurrent/locks/Condition;->awaitUninterruptibly()V
.line 1007
invoke-virtual {p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
:try_end_10
.catchall {:try_start_8 .. :try_end_10} :catchall_17
move-result v0
if-eqz v0, :cond_8
.line 1009
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->e(Lcom/google/common/util/concurrent/ag;)V
.line 1010
return-void
.line 1009
:catchall_17
move-exception v0
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->e(Lcom/google/common/util/concurrent/ag;)V
throw v0
.end method
.method private a(Lcom/google/common/util/concurrent/ag;JZ)Z
.registers 7
.prologue
.line 1016
if-eqz p4, :cond_5
.line 1017
invoke-direct {p0}, Lcom/google/common/util/concurrent/af;->ye()V
.line 1019
:cond_5
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->d(Lcom/google/common/util/concurrent/ag;)V
.line 1022
:cond_8
const-wide/16 v0, 0x0
cmp-long v0, p2, v0
if-gez v0, :cond_13
.line 1029
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->e(Lcom/google/common/util/concurrent/ag;)V
const/4 v0, 0x0
:goto_12
return v0
.line 1025
:cond_13
:try_start_13
iget-object v0, p1, Lcom/google/common/util/concurrent/ag;->condition:Ljava/util/concurrent/locks/Condition;
invoke-interface {v0, p2, p3}, Ljava/util/concurrent/locks/Condition;->awaitNanos(J)J
move-result-wide p2
.line 1026
invoke-virtual {p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
:try_end_1c
.catchall {:try_start_13 .. :try_end_1c} :catchall_24
move-result v0
if-eqz v0, :cond_8
.line 1029
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->e(Lcom/google/common/util/concurrent/ag;)V
const/4 v0, 0x1
goto :goto_12
:catchall_24
move-exception v0
invoke-direct {p0, p1}, Lcom/google/common/util/concurrent/af;->e(Lcom/google/common/util/concurrent/ag;)V
throw v0
.end method
.method private c(Lcom/google/common/util/concurrent/ag;)Z
.registers 5
.prologue
.line 924
:try_start_0
invoke-virtual {p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
:try_end_3
.catch Ljava/lang/Throwable; {:try_start_0 .. :try_end_3} :catch_5
move-result v0
return v0
.line 925
:catch_5
move-exception v1
.line 1936
iget-object v0, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
:goto_8
if-eqz v0, :cond_12
.line 1937
iget-object v2, v0, Lcom/google/common/util/concurrent/ag;->condition:Ljava/util/concurrent/locks/Condition;
invoke-interface {v2}, Ljava/util/concurrent/locks/Condition;->signalAll()V
.line 1936
iget-object v0, v0, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
goto :goto_8
.line 927
:cond_12
invoke-static {v1}, Lcom/google/common/base/v;->c(Ljava/lang/Throwable;)Ljava/lang/RuntimeException;
move-result-object v0
throw v0
.end method
.method private d(Lcom/google/common/util/concurrent/ag;)V
.registers 4
.prologue
.line 946
iget v0, p1, Lcom/google/common/util/concurrent/ag;->aZb:I
add-int/lit8 v1, v0, 0x1
iput v1, p1, Lcom/google/common/util/concurrent/ag;->aZb:I
.line 947
if-nez v0, :cond_e
.line 949
iget-object v0, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
iput-object v0, p1, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
.line 950
iput-object p1, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
.line 952
:cond_e
return-void
.end method
.method private e(Lcom/google/common/util/concurrent/ag;)V
.registers 7
.prologue
const/4 v1, 0x0
.line 959
iget v0, p1, Lcom/google/common/util/concurrent/ag;->aZb:I
add-int/lit8 v0, v0, -0x1
iput v0, p1, Lcom/google/common/util/concurrent/ag;->aZb:I
.line 960
if-nez v0, :cond_16
.line 962
iget-object v2, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
move-object v0, v1
.line 963
:goto_c
if-ne v2, p1, :cond_1c
.line 964
if-nez v0, :cond_17
.line 965
iget-object v0, v2, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
iput-object v0, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
.line 969
:goto_14
iput-object v1, v2, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
.line 974
:cond_16
return-void
.line 967
:cond_17
iget-object v3, v2, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
iput-object v3, v0, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
goto :goto_14
.line 962
:cond_1c
iget-object v0, v2, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
move-object v4, v2
move-object v2, v0
move-object v0, v4
goto :goto_c
.end method
.method private ye()V
.registers 3
.prologue
.line 891
iget-object v0, p0, Lcom/google/common/util/concurrent/af;->aZa:Lcom/google/common/util/concurrent/ag;
:goto_2
if-eqz v0, :cond_f
.line 892
invoke-direct {p0, v0}, Lcom/google/common/util/concurrent/af;->c(Lcom/google/common/util/concurrent/ag;)Z
move-result v1
if-eqz v1, :cond_10
.line 893
iget-object v0, v0, Lcom/google/common/util/concurrent/ag;->condition:Ljava/util/concurrent/locks/Condition;
invoke-interface {v0}, Ljava/util/concurrent/locks/Condition;->signal()V
.line 897
:cond_f
return-void
.line 891
:cond_10
iget-object v0, v0, Lcom/google/common/util/concurrent/ag;->aZc:Lcom/google/common/util/concurrent/ag;
goto :goto_2
.end method
# virtual methods
.method public final a(Lcom/google/common/util/concurrent/ag;)V
.registers 4
.prologue
.line 444
iget-object v0, p1, Lcom/google/common/util/concurrent/ag;->aYo:Lcom/google/common/util/concurrent/af;
if-eq v0, p0, :cond_a
.line 445
new-instance v0, Ljava/lang/IllegalMonitorStateException;
invoke-direct {v0}, Ljava/lang/IllegalMonitorStateException;-><init>()V
throw v0
.line 447
:cond_a
iget-object v0, p0, Lcom/google/common/util/concurrent/af;->lock:Ljava/util/concurrent/locks/ReentrantLock;
.line 448
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->isHeldByCurrentThread()Z
move-result v1
.line 449
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 453
:try_start_13
invoke-virtual {p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
move-result v0
if-nez v0, :cond_1c
.line 454
invoke-direct {p0, p1, v1}, Lcom/google/common/util/concurrent/af;->a(Lcom/google/common/util/concurrent/ag;Z)V
:try_end_1c
.catchall {:try_start_13 .. :try_end_1c} :catchall_1d
.line 458
:cond_1c
return-void
:catchall_1d
move-exception v0
.line 459
invoke-virtual {p0}, Lcom/google/common/util/concurrent/af;->yd()V
throw v0
.end method
.method public final a(Lcom/google/common/util/concurrent/ag;JLjava/util/concurrent/TimeUnit;)Z
.registers 21
.prologue
.line 513
move-object/from16 v0, p4
move-wide/from16 v1, p2
invoke-virtual {v0, v1, v2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v4
.line 514
move-object/from16 v0, p1
iget-object v6, v0, Lcom/google/common/util/concurrent/ag;->aYo:Lcom/google/common/util/concurrent/af;
move-object/from16 v0, p0
if-eq v6, v0, :cond_16
.line 515
new-instance v4, Ljava/lang/IllegalMonitorStateException;
invoke-direct {v4}, Ljava/lang/IllegalMonitorStateException;-><init>()V
throw v4
.line 517
:cond_16
move-object/from16 v0, p0
iget-object v10, v0, Lcom/google/common/util/concurrent/af;->lock:Ljava/util/concurrent/locks/ReentrantLock;
.line 518
invoke-static {}, Ljava/lang/System;->nanoTime()J
move-result-wide v6
add-long v12, v6, v4
.line 519
invoke-virtual {v10}, Ljava/util/concurrent/locks/ReentrantLock;->isHeldByCurrentThread()Z
move-result v7
.line 520
invoke-static {}, Ljava/lang/Thread;->interrupted()Z
move-result v6
.line 522
:try_start_28
invoke-virtual {v10}, Ljava/util/concurrent/locks/ReentrantLock;->tryLock()Z
:try_end_2b
.catchall {:try_start_28 .. :try_end_2b} :catchall_94
move-result v8
if-nez v8, :cond_50
.line 523
const/4 v8, 0x0
move v14, v8
move-wide v8, v4
move v4, v14
move v5, v6
.line 526
:goto_33
:try_start_33
sget-object v6, Ljava/util/concurrent/TimeUnit;->NANOSECONDS:Ljava/util/concurrent/TimeUnit;
invoke-virtual {v10, v8, v9, v6}, Ljava/util/concurrent/locks/ReentrantLock;->tryLock(JLjava/util/concurrent/TimeUnit;)Z
:try_end_38
.catch Ljava/lang/InterruptedException; {:try_start_33 .. :try_end_38} :catch_74
.catchall {:try_start_33 .. :try_end_38} :catchall_89
move-result v4
.line 527
if-nez v4, :cond_46
.line 555
if-eqz v5, :cond_44
.line 556
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/Thread;->interrupt()V
:cond_44
const/4 v4, 0x0
:cond_45
:goto_45
return v4
:cond_46
move v8, v4
move v6, v5
.line 533
:goto_48
:try_start_48
invoke-static {}, Ljava/lang/System;->nanoTime()J
:try_end_4b
.catchall {:try_start_48 .. :try_end_4b} :catchall_97
move-result-wide v4
sub-long v4, v12, v4
.line 534
if-eqz v8, :cond_9a
:cond_50
move-wide v14, v4
move v5, v6
move v4, v7
move-wide v6, v14
.line 541
:goto_54
:try_start_54
invoke-virtual/range {p1 .. p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
move-result v8
if-nez v8, :cond_64
move-object/from16 v0, p0
move-object/from16 v1, p1
invoke-direct {v0, v1, v6, v7, v4}, Lcom/google/common/util/concurrent/af;->a(Lcom/google/common/util/concurrent/ag;JZ)Z
:try_end_61
.catch Ljava/lang/InterruptedException; {:try_start_54 .. :try_end_61} :catch_7a
.catchall {:try_start_54 .. :try_end_61} :catchall_84
move-result v4
if-eqz v4, :cond_78
:cond_64
const/4 v4, 0x1
.line 550
:goto_65
if-nez v4, :cond_6a
.line 551
:try_start_67
invoke-virtual {v10}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
:try_end_6a
.catchall {:try_start_67 .. :try_end_6a} :catchall_89
.line 555
:cond_6a
if-eqz v5, :cond_45
.line 556
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/Thread;->interrupt()V
goto :goto_45
.line 531
:catch_74
move-exception v5
const/4 v6, 0x1
move v8, v4
goto :goto_48
.line 541
:cond_78
const/4 v4, 0x0
goto :goto_65
.line 544
:catch_7a
move-exception v4
const/4 v5, 0x1
.line 545
const/4 v4, 0x0
.line 546
:try_start_7d
invoke-static {}, Ljava/lang/System;->nanoTime()J
:try_end_80
.catchall {:try_start_7d .. :try_end_80} :catchall_84
move-result-wide v6
sub-long v6, v12, v6
.line 547
goto :goto_54
.line 550
:catchall_84
move-exception v4
.line 551
:try_start_85
invoke-virtual {v10}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v4
:try_end_89
.catchall {:try_start_85 .. :try_end_89} :catchall_89
.line 555
:catchall_89
move-exception v4
:goto_8a
if-eqz v5, :cond_93
.line 556
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v5
invoke-virtual {v5}, Ljava/lang/Thread;->interrupt()V
:cond_93
throw v4
.line 555
:catchall_94
move-exception v4
move v5, v6
goto :goto_8a
:catchall_97
move-exception v4
move v5, v6
goto :goto_8a
:cond_9a
move v14, v8
move-wide v8, v4
move v4, v14
move v5, v6
goto :goto_33
.end method
.method public final b(Lcom/google/common/util/concurrent/ag;)Z
.registers 4
.prologue
.line 568
iget-object v0, p1, Lcom/google/common/util/concurrent/ag;->aYo:Lcom/google/common/util/concurrent/af;
if-eq v0, p0, :cond_a
.line 569
new-instance v0, Ljava/lang/IllegalMonitorStateException;
invoke-direct {v0}, Ljava/lang/IllegalMonitorStateException;-><init>()V
throw v0
.line 571
:cond_a
iget-object v0, p0, Lcom/google/common/util/concurrent/af;->lock:Ljava/util/concurrent/locks/ReentrantLock;
.line 572
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 576
:try_start_f
invoke-virtual {p1}, Lcom/google/common/util/concurrent/ag;->xZ()Z
:try_end_12
.catchall {:try_start_f .. :try_end_12} :catchall_19
move-result v1
.line 578
if-nez v1, :cond_18
.line 579
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
:cond_18
return v1
.line 578
:catchall_19
move-exception v1
.line 579
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v1
.end method
.method public final yd()V
.registers 4
.prologue
.line 765
iget-object v1, p0, Lcom/google/common/util/concurrent/af;->lock:Ljava/util/concurrent/locks/ReentrantLock;
.line 768
:try_start_2
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->getHoldCount()I
move-result v0
const/4 v2, 0x1
if-ne v0, v2, :cond_c
.line 769
invoke-direct {p0}, Lcom/google/common/util/concurrent/af;->ye()V
:try_end_c
.catchall {:try_start_2 .. :try_end_c} :catchall_10
.line 772
:cond_c
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
.line 773
return-void
.line 772
:catchall_10
move-exception v0
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v0
.end method