e.smali
.class public Lcom/keniu/security/a/e;
.super Ljava/util/concurrent/ThreadPoolExecutor;
.source "PausableThreadPoolExecutor.java"
# instance fields
.field private a:Z
.field private b:Ljava/util/concurrent/locks/ReentrantLock;
.field private c:Ljava/util/concurrent/locks/Condition;
# direct methods
.method public constructor <init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
.registers 9
.annotation system Ldalvik/annotation/Signature;
value = {
"(IIJ",
"Ljava/util/concurrent/TimeUnit;",
"Ljava/util/concurrent/BlockingQueue",
"<",
"Ljava/lang/Runnable;",
">;",
"Ljava/util/concurrent/ThreadFactory;",
")V"
}
.end annotation
.prologue
.line 21
invoke-direct/range {p0 .. p7}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;)V
.line 25
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
iput-object v0, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
.line 26
iget-object v0, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->newCondition()Ljava/util/concurrent/locks/Condition;
move-result-object v0
iput-object v0, p0, Lcom/keniu/security/a/e;->c:Ljava/util/concurrent/locks/Condition;
.line 22
return-void
.end method
# virtual methods
.method protected afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V
.registers 5
.prologue
.line 43
invoke-super {p0, p1, p2}, Ljava/util/concurrent/ThreadPoolExecutor;->afterExecute(Ljava/lang/Runnable;Ljava/lang/Throwable;)V
.line 45
if-nez p2, :cond_e
instance-of v0, p1, Lcom/keniu/security/a/b$a;
if-eqz v0, :cond_e
.line 47
:try_start_9
check-cast p1, Lcom/keniu/security/a/b$a;
invoke-virtual {p1}, Lcom/keniu/security/a/b$a;->get()Ljava/lang/Object;
:try_end_e
.catch Ljava/util/concurrent/CancellationException; {:try_start_9 .. :try_end_e} :catch_11
.catch Ljava/util/concurrent/ExecutionException; {:try_start_9 .. :try_end_e} :catch_14
.catch Ljava/lang/InterruptedException; {:try_start_9 .. :try_end_e} :catch_1a
.catch Ljava/lang/Throwable; {:try_start_9 .. :try_end_e} :catch_2d
.line 58
:cond_e
:goto_e
if-nez p2, :cond_23
.line 62
:goto_10
return-void
.line 48
:catch_11
move-exception v0
move-object p2, v0
.line 56
goto :goto_e
.line 50
:catch_14
move-exception v0
.line 51
invoke-virtual {v0}, Ljava/util/concurrent/ExecutionException;->getCause()Ljava/lang/Throwable;
move-result-object p2
goto :goto_e
.line 52
:catch_1a
move-exception v0
.line 53
invoke-static {}, Ljava/lang/Thread;->currentThread()Ljava/lang/Thread;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Thread;->interrupt()V
goto :goto_e
.line 60
:cond_23
invoke-static {}, Lcom/cleanmaster/base/crash/h;->e()Lcom/cleanmaster/base/crash/h;
move-result-object v0
const-string v1, "3012"
invoke-virtual {v0, v1, p2}, Lcom/cleanmaster/base/crash/h;->a(Ljava/lang/String;Ljava/lang/Throwable;)V
goto :goto_10
.line 54
:catch_2d
move-exception v0
goto :goto_10
.end method
.method protected beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V
.registers 5
.prologue
.line 30
invoke-super {p0, p1, p2}, Ljava/util/concurrent/ThreadPoolExecutor;->beforeExecute(Ljava/lang/Thread;Ljava/lang/Runnable;)V
.line 31
iget-object v0, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->lock()V
.line 33
:goto_8
:try_start_8
iget-boolean v0, p0, Lcom/keniu/security/a/e;->a:Z
if-eqz v0, :cond_1c
iget-object v0, p0, Lcom/keniu/security/a/e;->c:Ljava/util/concurrent/locks/Condition;
invoke-interface {v0}, Ljava/util/concurrent/locks/Condition;->await()V
:try_end_11
.catch Ljava/lang/InterruptedException; {:try_start_8 .. :try_end_11} :catch_12
.catchall {:try_start_8 .. :try_end_11} :catchall_22
goto :goto_8
.line 34
:catch_12
move-exception v0
.line 35
:try_start_13
invoke-virtual {p1}, Ljava/lang/Thread;->interrupt()V
:try_end_16
.catchall {:try_start_13 .. :try_end_16} :catchall_22
.line 37
iget-object v0, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
.line 39
:goto_1b
return-void
.line 37
:cond_1c
iget-object v0, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v0}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
goto :goto_1b
:catchall_22
move-exception v0
iget-object v1, p0, Lcom/keniu/security/a/e;->b:Ljava/util/concurrent/locks/ReentrantLock;
invoke-virtual {v1}, Ljava/util/concurrent/locks/ReentrantLock;->unlock()V
throw v0
.end method