MMCCpuThreadPool.smali

.class public Lcom/mmc/player/utils/MMCCpuThreadPool;
.super Ljava/lang/Object;
.source "SourceFile"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Lcom/mmc/player/utils/MMCCpuThreadPool$SingleThreadFactory;
    }
.end annotation


# static fields
.field private static final CORE_POOL_SIZE:I = 0x1

.field private static final KEEP_ALIVE_TIME:I = 0x1e

.field private static final MAX_POOL_SIZE:I = 0x1

.field private static final TIME_UNIT:Ljava/util/concurrent/TimeUnit;

.field private static final WORK_QUEUE:Ljava/util/concurrent/BlockingQueue;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/concurrent/BlockingQueue<",
            "Ljava/lang/Runnable;",
            ">;"
        }
    .end annotation
.end field

.field private static sSingleton:Ljava/util/concurrent/ThreadPoolExecutor;


# direct methods
.method public static constructor <clinit>()V
    .registers 1

    .line 1
    sget-object v0, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;

    sput-object v0, Lcom/mmc/player/utils/MMCCpuThreadPool;->TIME_UNIT:Ljava/util/concurrent/TimeUnit;

    .line 2
    new-instance v0, Ljava/util/concurrent/LinkedBlockingQueue;

    invoke-direct {v0}, Ljava/util/concurrent/LinkedBlockingQueue;-><init>()V

    sput-object v0, Lcom/mmc/player/utils/MMCCpuThreadPool;->WORK_QUEUE:Ljava/util/concurrent/BlockingQueue;

    return-void
.end method

.method public constructor <init>()V
    .registers 1

    invoke-direct {p0}, Ljava/lang/Object;-><init>()V

    return-void
.end method

.method public static synthetic a(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V
    .registers 2

    invoke-static {p0, p1}, Lcom/mmc/player/utils/MMCCpuThreadPool;->lambda$get$0(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V

    return-void
.end method

.method public static get()Ljava/util/concurrent/ThreadPoolExecutor;
    .registers 11

    .line 1
    sget-object v0, Lcom/mmc/player/utils/MMCCpuThreadPool;->sSingleton:Ljava/util/concurrent/ThreadPoolExecutor;

    if-nez v0, :cond_28

    .line 2
    const-class v0, Lcom/mmc/player/utils/MMCCpuThreadPool;

    monitor-enter v0

    .line 3
    :try_start_7
    sget-object v1, Lcom/mmc/player/utils/MMCCpuThreadPool;->sSingleton:Ljava/util/concurrent/ThreadPoolExecutor;

    if-nez v1, :cond_23

    const/4 v2, 0x1

    const/4 v3, 0x1

    const-wide/16 v4, 0x1e

    .line 4
    sget-object v6, Lcom/mmc/player/utils/MMCCpuThreadPool;->TIME_UNIT:Ljava/util/concurrent/TimeUnit;

    sget-object v7, Lcom/mmc/player/utils/MMCCpuThreadPool;->WORK_QUEUE:Ljava/util/concurrent/BlockingQueue;

    new-instance v8, Lcom/mmc/player/utils/MMCCpuThreadPool$SingleThreadFactory;

    const/4 v1, 0x0

    invoke-direct {v8, v1}, Lcom/mmc/player/utils/MMCCpuThreadPool$SingleThreadFactory;-><init>(Lcom/mmc/player/utils/MMCCpuThreadPool$1;)V

    sget-object v9, Lcom/mmc/player/utils/a;->a:Lcom/mmc/player/utils/a;

    const-string v10, "com/mmc/player/utils/MMCCpuThreadPool"

    invoke-static/range {v2 .. v10}, Lcom/garena/android/appkit/logging/a;->S(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;Ljava/util/concurrent/ThreadFactory;Ljava/util/concurrent/RejectedExecutionHandler;Ljava/lang/String;)Ljava/util/concurrent/ThreadPoolExecutor;

    move-result-object v1

    sput-object v1, Lcom/mmc/player/utils/MMCCpuThreadPool;->sSingleton:Ljava/util/concurrent/ThreadPoolExecutor;

    .line 5
    :cond_23
    monitor-exit v0

    goto :goto_28

    :catchall_25
    move-exception v1

    monitor-exit v0
    :try_end_27
    .catchall {:try_start_7 .. :try_end_27} :catchall_25

    throw v1

    .line 6
    :cond_28
    :goto_28
    sget-object v0, Lcom/mmc/player/utils/MMCCpuThreadPool;->sSingleton:Ljava/util/concurrent/ThreadPoolExecutor;

    return-object v0
.end method

.method private static synthetic lambda$get$0(Ljava/lang/Runnable;Ljava/util/concurrent/ThreadPoolExecutor;)V
    .registers 2

    return-void
.end method