ah.smali
.class public final Lcom/google/common/util/concurrent/ah;
.super Lcom/google/common/util/concurrent/c;
.source "MoreExecutors.java"
# instance fields
.field private final aZf:Ljava/util/concurrent/locks/Condition;
.field private aZg:I
.field private final lock:Ljava/util/concurrent/locks/Lock;
.field private shutdown:Z
# direct methods
.method private constructor <init>()V
.registers 3
.prologue
const/4 v1, 0x0
.line 274
invoke-direct {p0}, Lcom/google/common/util/concurrent/c;-><init>()V
.line 280
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
.line 283
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->newCondition()Ljava/util/concurrent/locks/Condition;
move-result-object v0
iput-object v0, p0, Lcom/google/common/util/concurrent/ah;->aZf:Ljava/util/concurrent/locks/Condition;
.line 292
iput v1, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
.line 293
iput-boolean v1, p0, Lcom/google/common/util/concurrent/ah;->shutdown:Z
return-void
.end method
.method public synthetic constructor <init>(B)V
.registers 2
.prologue
.line 274
invoke-direct {p0}, Lcom/google/common/util/concurrent/ah;-><init>()V
return-void
.end method
.method private yh()V
.registers 3
.prologue
.line 385
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 387
:try_start_5
iget v0, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
add-int/lit8 v0, v0, -0x1
iput v0, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
.line 388
invoke-virtual {p0}, Lcom/google/common/util/concurrent/ah;->isTerminated()Z
move-result v0
if-eqz v0, :cond_16
.line 389
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->aZf:Ljava/util/concurrent/locks/Condition;
invoke-interface {v0}, Ljava/util/concurrent/locks/Condition;->signalAll()V
:try_end_16
.catchall {:try_start_5 .. :try_end_16} :catchall_1c
.line 392
:cond_16
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 393
return-void
.line 392
:catchall_1c
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
# virtual methods
.method public final awaitTermination(JLjava/util/concurrent/TimeUnit;)Z
.registers 9
.prologue
.line 345
invoke-virtual {p3, p1, p2}, Ljava/util/concurrent/TimeUnit;->toNanos(J)J
move-result-wide v0
.line 346
iget-object v2, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v2}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 349
:goto_9
:try_start_9
invoke-virtual {p0}, Lcom/google/common/util/concurrent/ah;->isTerminated()Z
:try_end_c
.catchall {:try_start_9 .. :try_end_c} :catchall_2a
move-result v2
if-eqz v2, :cond_16
.line 358
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
const/4 v0, 0x1
:goto_15
return v0
.line 351
:cond_16
const-wide/16 v2, 0x0
cmp-long v2, v0, v2
if-gtz v2, :cond_23
.line 358
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
const/4 v0, 0x0
goto :goto_15
.line 354
:cond_23
:try_start_23
iget-object v2, p0, Lcom/google/common/util/concurrent/ah;->aZf:Ljava/util/concurrent/locks/Condition;
invoke-interface {v2, v0, v1}, Ljava/util/concurrent/locks/Condition;->awaitNanos(J)J
:try_end_28
.catchall {:try_start_23 .. :try_end_28} :catchall_2a
move-result-wide v0
goto :goto_9
.line 358
:catchall_2a
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public final execute(Ljava/lang/Runnable;)V
.registers 4
.prologue
.line 297
.line 1370
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 1372
:try_start_5
invoke-virtual {p0}, Lcom/google/common/util/concurrent/ah;->isShutdown()Z
move-result v0
if-eqz v0, :cond_1a
.line 1373
new-instance v0, Ljava/util/concurrent/RejectedExecutionException;
const-string v1, "Executor already shutdown"
invoke-direct {v0, v1}, Ljava/util/concurrent/RejectedExecutionException;-><init>(Ljava/lang/String;)V
throw v0
:try_end_13
.catchall {:try_start_5 .. :try_end_13} :catchall_13
.line 1377
:catchall_13
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.line 1375
:cond_1a
:try_start_1a
iget v0, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
add-int/lit8 v0, v0, 0x1
iput v0, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
:try_end_20
.catchall {:try_start_1a .. :try_end_20} :catchall_13
.line 1377
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 299
:try_start_25
invoke-interface {p1}, Ljava/lang/Runnable;->run()V
:try_end_28
.catchall {:try_start_25 .. :try_end_28} :catchall_2c
.line 301
invoke-direct {p0}, Lcom/google/common/util/concurrent/ah;->yh()V
.line 302
return-void
.line 301
:catchall_2c
move-exception v0
invoke-direct {p0}, Lcom/google/common/util/concurrent/ah;->yh()V
throw v0
.end method
.method public final isShutdown()Z
.registers 3
.prologue
.line 307
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 309
:try_start_5
iget-boolean v0, p0, Lcom/google/common/util/concurrent/ah;->shutdown:Z
:try_end_7
.catchall {:try_start_5 .. :try_end_7} :catchall_d
.line 311
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return v0
:catchall_d
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public final isTerminated()Z
.registers 3
.prologue
.line 334
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 336
:try_start_5
iget-boolean v0, p0, Lcom/google/common/util/concurrent/ah;->shutdown:Z
if-eqz v0, :cond_14
iget v0, p0, Lcom/google/common/util/concurrent/ah;->aZg:I
:try_end_b
.catchall {:try_start_5 .. :try_end_b} :catchall_16
if-nez v0, :cond_14
const/4 v0, 0x1
.line 338
:goto_e
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
return v0
.line 336
:cond_14
const/4 v0, 0x0
goto :goto_e
.line 338
:catchall_16
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public final shutdown()V
.registers 3
.prologue
.line 317
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->lock()V
.line 319
const/4 v0, 0x1
:try_start_6
iput-boolean v0, p0, Lcom/google/common/util/concurrent/ah;->shutdown:Z
:try_end_8
.catchall {:try_start_6 .. :try_end_8} :catchall_e
.line 321
iget-object v0, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
.line 322
return-void
.line 321
:catchall_e
move-exception v0
iget-object v1, p0, Lcom/google/common/util/concurrent/ah;->lock:Ljava/util/concurrent/locks/Lock;
invoke-interface {v1}, Ljava/util/concurrent/locks/Lock;->unlock()V
throw v0
.end method
.method public final shutdownNow()Ljava/util/List;
.registers 2
.annotation system Ldalvik/annotation/Signature;
value = {
"()",
"Ljava/util/List",
"<",
"Ljava/lang/Runnable;",
">;"
}
.end annotation
.prologue
.line 328
invoke-virtual {p0}, Lcom/google/common/util/concurrent/ah;->shutdown()V
.line 329
invoke-static {}, Ljava/util/Collections;->emptyList()Ljava/util/List;
move-result-object v0
return-object v0
.end method