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