g.smali
.class public final Laq/g;
.super Ljava/lang/Object;
.source "SchedulerPoolFactory.java"
# annotations
.annotation system Ldalvik/annotation/MemberClasses;
value = {
Laq/g$a;
}
.end annotation
# static fields
.field public static final a:Z
.field public static final b:I
.field public static final c:Ljava/util/concurrent/atomic/AtomicReference;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/concurrent/atomic/AtomicReference<",
"Ljava/util/concurrent/ScheduledExecutorService;",
">;"
}
.end annotation
.end field
.field public static final d:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/util/concurrent/ScheduledThreadPoolExecutor;",
"Ljava/lang/Object;",
">;"
}
.end annotation
.end field
# direct methods
.method public static constructor <clinit>()V
.registers 4
new-instance v0, Ljava/util/concurrent/atomic/AtomicReference;
invoke-direct {v0}, Ljava/util/concurrent/atomic/AtomicReference;-><init>()V
sput-object v0, Laq/g;->c:Ljava/util/concurrent/atomic/AtomicReference;
new-instance v0, Ljava/util/concurrent/ConcurrentHashMap;
invoke-direct {v0}, Ljava/util/concurrent/ConcurrentHashMap;-><init>()V
sput-object v0, Laq/g;->d:Ljava/util/Map;
invoke-static {}, Ljava/lang/System;->getProperties()Ljava/util/Properties;
move-result-object v0
const-string v1, "rx2.purge-enabled"
invoke-virtual {v0, v1}, Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z
move-result v2
const/4 v3, 0x1
if-eqz v2, :cond_20
invoke-static {v1}, Ljava/lang/Boolean;->getBoolean(Ljava/lang/String;)Z
move-result v1
goto :goto_21
:cond_20
const/4 v1, 0x1
:goto_21
if-eqz v1, :cond_33
const-string v2, "rx2.purge-period-seconds"
invoke-virtual {v0, v2}, Ljava/util/Properties;->containsKey(Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_33
invoke-static {v2, v3}, Ljava/lang/Integer;->getInteger(Ljava/lang/String;I)Ljava/lang/Integer;
move-result-object v0
invoke-virtual {v0}, Ljava/lang/Integer;->intValue()I
move-result v3
:cond_33
sput-boolean v1, Laq/g;->a:Z
sput v3, Laq/g;->b:I
invoke-static {}, Laq/g;->a()V
return-void
.end method
.method public static a(Ljava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
.registers 3
const/4 v0, 0x1
invoke-static {v0, p0}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object p0
sget-boolean v0, Laq/g;->a:Z
if-eqz v0, :cond_15
instance-of v0, p0, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
if-eqz v0, :cond_15
move-object v0, p0
check-cast v0, Ljava/util/concurrent/ScheduledThreadPoolExecutor;
sget-object v1, Laq/g;->d:Ljava/util/Map;
invoke-interface {v1, v0, p0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
:cond_15
return-object p0
.end method
.method public static a()V
.registers 11
sget-boolean v0, Laq/g;->a:Z
if-nez v0, :cond_5
return-void
:cond_5
:goto_5
sget-object v0, Laq/g;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicReference;->get()Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/ScheduledExecutorService;
if-eqz v0, :cond_16
invoke-interface {v0}, Ljava/util/concurrent/ScheduledExecutorService;->isShutdown()Z
move-result v1
if-nez v1, :cond_16
return-void
:cond_16
const/4 v1, 0x1
new-instance v2, Laq/e;
const-string v3, "RxSchedulerPurge"
invoke-direct {v2, v3}, Laq/e;-><init>(Ljava/lang/String;)V
invoke-static {v1, v2}, Ljava/util/concurrent/Executors;->newScheduledThreadPool(ILjava/util/concurrent/ThreadFactory;)Ljava/util/concurrent/ScheduledExecutorService;
move-result-object v4
sget-object v1, Laq/g;->c:Ljava/util/concurrent/atomic/AtomicReference;
invoke-virtual {v1, v0, v4}, Ljava/util/concurrent/atomic/AtomicReference;->compareAndSet(Ljava/lang/Object;Ljava/lang/Object;)Z
move-result v0
if-eqz v0, :cond_39
new-instance v5, Laq/g$a;
invoke-direct {v5}, Laq/g$a;-><init>()V
sget v0, Laq/g;->b:I
int-to-long v6, v0
int-to-long v8, v0
sget-object v10, Ljava/util/concurrent/TimeUnit;->SECONDS:Ljava/util/concurrent/TimeUnit;
invoke-interface/range {v4 .. v10}, Ljava/util/concurrent/ScheduledExecutorService;->scheduleAtFixedRate(Ljava/lang/Runnable;JJLjava/util/concurrent/TimeUnit;)Ljava/util/concurrent/ScheduledFuture;
return-void
:cond_39
invoke-interface {v4}, Ljava/util/concurrent/ScheduledExecutorService;->shutdownNow()Ljava/util/List;
goto :goto_5
.end method