p.smali

.class public Ljo/p;
.super Ljava/lang/Object;
.source "ThreadPoolUtils.java"


# annotations
.annotation system Ldalvik/annotation/MemberClasses;
    value = {
        Ljo/p$b;
    }
.end annotation


# static fields
.field public static final j:Ljava/lang/String; = "p"


# instance fields
.field public final a:Ljava/util/concurrent/ScheduledExecutorService;

.field public final b:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Lcom/shopee/threadpool/ThreadPoolType;",
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljo/h;",
            ">;>;"
        }
    .end annotation
.end field

.field public final c:Ljava/util/Queue;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Queue<",
            "Ljo/i;",
            ">;"
        }
    .end annotation
.end field

.field public d:Ljava/util/concurrent/Executor;

.field public e:Ljava/util/concurrent/Executor;

.field public f:Ljava/util/concurrent/Executor;

.field public g:Ljava/util/concurrent/Executor;

.field public h:Ljava/util/concurrent/Executor;

.field public final i:Ljava/util/Map;
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "Ljava/util/Map<",
            "Ljava/lang/Integer;",
            "Ljava/util/concurrent/Executor;",
            ">;"
        }
    .end annotation
.end field


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

    return-void
.end method

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

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

    const/4 v0, 0x1

    invoke-static {v0}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(I)Ljava/util/concurrent/ScheduledExecutorService;

    move-result-object v0

    iput-object v0, p0, Ljo/p;->a:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;

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

    iput-object v0, p0, Ljo/p;->b:Ljava/util/Map;

    new-instance v0, Ljava/util/concurrent/ConcurrentLinkedQueue;

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

    iput-object v0, p0, Ljo/p;->c:Ljava/util/Queue;

    new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;

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

    iput-object v0, p0, Ljo/p;->i:Ljava/util/Map;

    return-void
.end method

.method public synthetic constructor <init>(Ljo/p$a;)V
    .registers 2

    invoke-direct {p0}, Ljo/p;-><init>()V

    return-void
.end method

.method public static b()Ljo/p;
    .registers 1

    invoke-static {}, Ljo/p$b;->a()Ljo/p;

    move-result-object v0

    return-object v0
.end method


# virtual methods
.method public a()Ljava/util/Queue;
    .registers 2
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "()",
            "Ljava/util/Queue<",
            "Ljo/i;",
            ">;"
        }
    .end annotation

    iget-object v0, p0, Ljo/p;->c:Ljava/util/Queue;

    return-object v0
.end method

.method public a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;
    .registers 7
    .annotation build Landroidx/annotation/NonNull;
    .end annotation

    iget-object v0, p0, Ljo/p;->b:Ljava/util/Map;

    invoke-interface {v0, p1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v0

    check-cast v0, Ljava/util/Map;

    if-nez v0, :cond_20

    new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;

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

    invoke-static {p1, p2, p3}, Ljo/h;->a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;

    move-result-object v1

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-interface {v0, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    iget-object v2, p0, Ljo/p;->b:Ljava/util/Map;

    invoke-interface {v2, p1, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    goto :goto_3d

    :cond_20
    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v1

    invoke-interface {v0, v1}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v1

    check-cast v1, Ljo/h;

    if-eqz v1, :cond_32

    invoke-virtual {v1}, Ljava/util/concurrent/ThreadPoolExecutor;->isShutdown()Z

    move-result v2

    if-eqz v2, :cond_36

    :cond_32
    invoke-static {p1, p2, p3}, Ljo/h;->a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;

    move-result-object v1

    :cond_36
    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v2

    invoke-interface {v0, v2, v1}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;

    :goto_3d
    if-nez v1, :cond_43

    invoke-static {p1, p2, p3}, Ljo/h;->a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;

    move-result-object v1

    :cond_43
    return-object v1
.end method

.method public a(Lcom/shopee/threadpool/ThreadPoolType;Ljo/k;IIJJLjava/util/concurrent/TimeUnit;Ljo/j;Ljo/n;Ljo/m;Ljo/l;)V
    .registers 25
    .param p1    # Lcom/shopee/threadpool/ThreadPoolType;
        .annotation build Landroidx/annotation/NonNull;
        .end annotation
    .end param
    .param p2    # Ljo/k;
        .annotation build Landroidx/annotation/IntRange;
            from = 0x1L
            to = 0xaL
        .end annotation
    .end param
    .annotation system Ldalvik/annotation/Signature;
        value = {
            "<T:",
            "Ljava/lang/Object;",
            ">(",
            "Lcom/shopee/threadpool/ThreadPoolType;",
            "Ljo/k<",
            "TT;>;IIJJ",
            "Ljava/util/concurrent/TimeUnit;",
            "Ljo/j;",
            "Ljo/n<",
            "TT;>;",
            "Ljo/m;",
            "Ljo/l;",
            ")V"
        }
    .end annotation

    move-object v0, p0

    move-object v1, p1

    move v2, p3

    move v3, p4

    move-wide/from16 v4, p5

    new-instance v8, Ljo/i;

    invoke-direct {v8}, Ljo/i;-><init>()V

    move-object v6, p2

    invoke-virtual {v8, p2}, Ljo/i;->a(Ljo/k;)Ljo/i;

    move-object/from16 v6, p10

    invoke-virtual {v8, v6}, Ljo/i;->a(Ljo/j;)Ljo/i;

    move-object/from16 v6, p13

    invoke-virtual {v8, v6}, Ljo/i;->a(Ljo/l;)Ljo/i;

    move-object/from16 v6, p12

    invoke-virtual {v8, v6}, Ljo/i;->a(Ljo/m;)Ljo/i;

    move-object/from16 v6, p11

    invoke-virtual {v8, v6}, Ljo/i;->a(Ljo/n;)Ljo/i;

    const/4 v6, 0x1

    const/4 v7, 0x0

    :try_start_25
    sget-object v9, Ljo/p$a;->a:[I

    invoke-virtual {p1}, Ljava/lang/Enum;->ordinal()I

    move-result v10

    aget v9, v9, v10

    if-eq v9, v6, :cond_53

    const/4 v10, 0x2

    if-eq v9, v10, :cond_50

    const/4 v10, 0x3

    if-eq v9, v10, :cond_4d

    const/4 v10, 0x4

    if-eq v9, v10, :cond_3f

    const/4 v10, 0x5

    if-eq v9, v10, :cond_3c

    goto :goto_55

    :cond_3c
    iget-object v7, v0, Ljo/p;->g:Ljava/util/concurrent/Executor;

    goto :goto_55

    :cond_3f
    iget-object v9, v0, Ljo/p;->i:Ljava/util/Map;

    invoke-static {p3}, Ljava/lang/Integer;->valueOf(I)Ljava/lang/Integer;

    move-result-object v10

    invoke-interface {v9, v10}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;

    move-result-object v9

    check-cast v9, Ljava/util/concurrent/Executor;

    move-object v7, v9

    goto :goto_55

    :cond_4d
    iget-object v7, v0, Ljo/p;->h:Ljava/util/concurrent/Executor;

    goto :goto_55

    :cond_50
    iget-object v7, v0, Ljo/p;->e:Ljava/util/concurrent/Executor;

    goto :goto_55

    :cond_53
    iget-object v7, v0, Ljo/p;->f:Ljava/util/concurrent/Executor;

    :goto_55
    if-nez v7, :cond_59

    iget-object v7, v0, Ljo/p;->d:Ljava/util/concurrent/Executor;

    :cond_59
    if-nez v7, :cond_5f

    invoke-virtual {p0, p1, p3, p4}, Ljo/p;->a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;

    move-result-object v7

    :cond_5f
    iget-object v9, v0, Ljo/p;->c:Ljava/util/Queue;

    invoke-interface {v9, v8}, Ljava/util/Queue;->contains(Ljava/lang/Object;)Z

    move-result v9

    if-eqz v9, :cond_6f

    sget-object v9, Ljo/p;->j:Ljava/lang/String;

    const-string v10, "the task already being executed"

    invoke-static {v9, v10}, Landroid/util/Log;->e(Ljava/lang/String;Ljava/lang/String;)I

    goto :goto_76

    :cond_6f
    iget-object v9, v0, Ljo/p;->c:Ljava/util/Queue;

    invoke-interface {v9, v8}, Ljava/util/Queue;->add(Ljava/lang/Object;)Z
    :try_end_74
    .catchall {:try_start_25 .. :try_end_74} :catchall_75

    goto :goto_76

    :catchall_75
    nop

    :goto_76
    if-nez v7, :cond_7c

    invoke-virtual {p0, p1, p3, p4}, Ljo/p;->a(Lcom/shopee/threadpool/ThreadPoolType;II)Ljo/h;

    move-result-object v7

    :cond_7c
    const-wide/16 v1, 0x0

    cmp-long v3, p7, v1

    if-nez v3, :cond_8a

    cmp-long v3, v4, v1

    if-nez v3, :cond_8a

    invoke-interface {v7, v8}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void

    :cond_8a
    cmp-long v3, p7, v1

    if-nez v3, :cond_9f

    const/4 v1, 0x0

    invoke-virtual {v8, v1}, Ljo/i;->a(Z)V

    iget-object v1, v0, Ljo/p;->a:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v2, Ljo/e;

    invoke-direct {v2, p0, v8, v7}, Ljo/e;-><init>(Ljo/p;Ljo/i;Ljava/util/concurrent/Executor;)V

    move-object/from16 v9, p9

    invoke-interface {v1, v2, v4, v5, v9}, Ljava/util/concurrent/ScheduledExecutorService;->schedule(Ljava/lang/Runnable;JLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;

    goto :goto_b8

    :cond_9f
    move-object/from16 v9, p9

    invoke-virtual {v8, v6}, Ljo/i;->a(Z)V

    iget-object v1, v0, Ljo/p;->a:Ljava/util/concurrent/ScheduledExecutorService;

    new-instance v2, Ljo/d;

    invoke-direct {v2, p0, v8, v7}, Ljo/d;-><init>(Ljo/p;Ljo/i;Ljava/util/concurrent/Executor;)V

    move-wide/from16 v3, p5

    move-wide/from16 v5, p7

    move-object/from16 v7, p9

    invoke-interface/range {v1 .. v7}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;

    move-result-object v1

    invoke-virtual {v8, v1}, Ljo/i;->a(Ljava/util/concurrent/ScheduledFuture;)V

    :goto_b8
    return-void
.end method

.method public a(Ljava/util/concurrent/Executor;)V
    .registers 2

    iput-object p1, p0, Ljo/p;->e:Ljava/util/concurrent/Executor;

    return-void
.end method

.method public synthetic a(Ljo/i;Ljava/util/concurrent/Executor;)V
    .registers 4

    iget-object v0, p0, Ljo/p;->c:Ljava/util/Queue;

    invoke-interface {v0, p1}, Ljava/util/Queue;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_9

    return-void

    :cond_9
    invoke-interface {p2, p1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method public b(Ljava/util/concurrent/Executor;)V
    .registers 2

    iput-object p1, p0, Ljo/p;->f:Ljava/util/concurrent/Executor;

    return-void
.end method

.method public synthetic b(Ljo/i;Ljava/util/concurrent/Executor;)V
    .registers 4

    iget-object v0, p0, Ljo/p;->c:Ljava/util/Queue;

    invoke-interface {v0, p1}, Ljava/util/Queue;->contains(Ljava/lang/Object;)Z

    move-result v0

    if-nez v0, :cond_9

    return-void

    :cond_9
    invoke-interface {p2, p1}, Ljava/util/concurrent/Executor;->execute(Ljava/lang/Runnable;)V

    return-void
.end method

.method public c(Ljava/util/concurrent/Executor;)V
    .registers 2

    iput-object p1, p0, Ljo/p;->g:Ljava/util/concurrent/Executor;

    return-void
.end method