ThreadPool.smali

.class final Lio/rong/imlib/httpdns/ThreadPool;
.super Ljava/lang/Object;
.source "ThreadPool.java"


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

.field private static final keepAliveTime:I = 0x14

.field private static final maximumBlockingQueue:I = 0x32

.field private static final maximumPoolSize:I = 0x1

.field private static volatile threadPool:Lio/rong/imlib/httpdns/ThreadPool;


# instance fields
.field private final executor:Ljava/util/concurrent/Executor;


# direct methods
.method private constructor <init>()V
    .registers 9

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

    .line 2
    new-instance v7, Ljava/util/concurrent/ThreadPoolExecutor;

    sget-object v5, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;

    new-instance v6, Ljava/util/concurrent/LinkedBlockingDeque;

    const/16 v0, 0x32

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

    const/4 v1, 0x1

    const/4 v2, 0x1

    const-wide/16 v3, 0x14

    move-object v0, v7

    invoke-direct/range {v0 .. v6}, Ljava/util/concurrent/ThreadPoolExecutor;-><init>(IIJLjava/util/concurrent/TimeUnit;Ljava/util/concurrent/BlockingQueue;)V

    iput-object v7, p0, Lio/rong/imlib/httpdns/ThreadPool;->executor:Ljava/util/concurrent/Executor;

    return-void
.end method

.method static getInstance()Lio/rong/imlib/httpdns/ThreadPool;
    .registers 2

    .line 1
    sget-object v0, Lio/rong/imlib/httpdns/ThreadPool;->threadPool:Lio/rong/imlib/httpdns/ThreadPool;

    if-nez v0, :cond_17

    .line 2
    const-class v0, Lio/rong/imlib/httpdns/ThreadPool;

    monitor-enter v0

    .line 3
    :try_start_7
    sget-object v1, Lio/rong/imlib/httpdns/ThreadPool;->threadPool:Lio/rong/imlib/httpdns/ThreadPool;

    if-nez v1, :cond_12

    .line 4
    new-instance v1, Lio/rong/imlib/httpdns/ThreadPool;

    invoke-direct {v1}, Lio/rong/imlib/httpdns/ThreadPool;-><init>()V

    sput-object v1, Lio/rong/imlib/httpdns/ThreadPool;->threadPool:Lio/rong/imlib/httpdns/ThreadPool;

    .line 5
    :cond_12
    monitor-exit v0

    goto :goto_17

    :catchall_14
    move-exception v1

    monitor-exit v0
    :try_end_16
    .catchall {:try_start_7 .. :try_end_16} :catchall_14

    throw v1

    .line 6
    :cond_17
    :goto_17
    sget-object v0, Lio/rong/imlib/httpdns/ThreadPool;->threadPool:Lio/rong/imlib/httpdns/ThreadPool;

    return-object v0
.end method


# virtual methods
.method getExecutor()Ljava/util/concurrent/Executor;
    .registers 2

    .line 1
    iget-object v0, p0, Lio/rong/imlib/httpdns/ThreadPool;->executor:Ljava/util/concurrent/Executor;

    return-object v0
.end method