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