c.smali
.class public Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;
.super Ljava/lang/Object;
.source "UsingLock.java"
# static fields
.field private static final a:Ljava/util/Map;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map",
"<",
"Ljava/lang/String;",
"Landroid/util/Pair",
"<",
"Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;",
"Ljava/util/concurrent/atomic/AtomicLong;",
">;>;"
}
.end annotation
.end field
# direct methods
.method static constructor <clinit>()V
.registers 1
.prologue
.line 18
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
return-void
.end method
.method public static a(Ljava/lang/String;)V
.registers 7
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 27
sget-object v1, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
monitor-enter v1
.line 28
:try_start_3
sget-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/Pair;
.line 29
if-nez v0, :cond_26
.line 30
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {p0, v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->a(Ljava/lang/String;I)Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;
move-result-object v2
.line 31
new-instance v0, Landroid/util/Pair;
new-instance v3, Ljava/util/concurrent/atomic/AtomicLong;
const-wide/16 v4, 0x0
invoke-direct {v3, v4, v5}, Ljava/util/concurrent/atomic/AtomicLong;-><init>(J)V
invoke-direct {v0, v2, v3}, Landroid/util/Pair;-><init>(Ljava/lang/Object;Ljava/lang/Object;)V
.line 32
sget-object v2, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
invoke-interface {v2, p0, v0}, Ljava/util/Map;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 34
:cond_26
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->incrementAndGet()J
.line 35
monitor-exit v1
.line 36
return-void
.line 35
:catchall_2f
move-exception v0
monitor-exit v1
:try_end_31
.catchall {:try_start_3 .. :try_end_31} :catchall_2f
throw v0
.end method
.method public static b(Ljava/lang/String;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
const-wide/16 v6, 0x0
.line 44
sget-object v2, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
monitor-enter v2
.line 45
:try_start_5
sget-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/Pair;
.line 46
if-nez v0, :cond_1b
.line 47
new-instance v0, Ljava/lang/RuntimeException;
const-string/jumbo v1, "using.lock illegal state"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 56
:catchall_18
move-exception v0
monitor-exit v2
:try_end_1a
.catchall {:try_start_5 .. :try_end_1a} :catchall_18
throw v0
.line 49
:cond_1b
:try_start_1b
iget-object v1, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v1, Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {v1}, Ljava/util/concurrent/atomic/AtomicLong;->decrementAndGet()J
move-result-wide v4
.line 50
cmp-long v1, v4, v6
if-gez v1, :cond_30
.line 51
new-instance v0, Ljava/lang/RuntimeException;
const-string/jumbo v1, "using.lock count illegal"
invoke-direct {v0, v1}, Ljava/lang/RuntimeException;-><init>(Ljava/lang/String;)V
throw v0
.line 52
:cond_30
cmp-long v1, v4, v6
if-nez v1, :cond_40
.line 53
iget-object v0, v0, Landroid/util/Pair;->first:Ljava/lang/Object;
check-cast v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;
invoke-virtual {v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->a()V
.line 54
sget-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->remove(Ljava/lang/Object;)Ljava/lang/Object;
.line 56
:cond_40
monitor-exit v2
:try_end_41
.catchall {:try_start_1b .. :try_end_41} :catchall_18
.line 57
return-void
.end method
.method public static c(Ljava/lang/String;)V
.registers 9
.annotation system Ldalvik/annotation/Throws;
value = {
Ljava/lang/Exception;
}
.end annotation
.prologue
.line 65
sget-object v1, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
monitor-enter v1
.line 67
:try_start_3
invoke-static {p0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->b(Ljava/lang/String;)Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;
move-result-object v2
.line 69
if-nez v2, :cond_b
.line 70
monitor-exit v1
.line 97
:goto_a
return-void
.line 74
:cond_b
sget-object v0, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c;->a:Ljava/util/Map;
invoke-interface {v0, p0}, Ljava/util/Map;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Landroid/util/Pair;
.line 75
if-eqz v0, :cond_32
iget-object v0, v0, Landroid/util/Pair;->second:Ljava/lang/Object;
check-cast v0, Ljava/util/concurrent/atomic/AtomicLong;
invoke-virtual {v0}, Ljava/util/concurrent/atomic/AtomicLong;->get()J
move-result-wide v4
const-wide/16 v6, 0x0
cmp-long v0, v4, v6
if-eqz v0, :cond_32
.line 77
invoke-virtual {v2}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->a()V
.line 78
invoke-static {}, Landroid/os/Process;->myPid()I
move-result v0
invoke-static {p0, v0}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->a(Ljava/lang/String;I)Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;
.line 79
monitor-exit v1
goto :goto_a
.line 96
:catchall_2f
move-exception v0
monitor-exit v1
:try_end_31
.catchall {:try_start_3 .. :try_end_31} :catchall_2f
throw v0
.line 83
:cond_32
:try_start_32
new-instance v0, Ljava/io/File;
invoke-direct {v0, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
invoke-virtual {v0}, Ljava/io/File;->getParentFile()Ljava/io/File;
move-result-object v0
.line 84
new-instance v3, Ljava/io/File;
new-instance v4, Ljava/lang/StringBuilder;
invoke-direct {v4}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object v5
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
const-string v5, "--pending-delete"
invoke-virtual {v4, v5}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
move-result-object v4
invoke-virtual {v4}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object v4
invoke-direct {v3, v4}, Ljava/io/File;-><init>(Ljava/lang/String;)V
.line 85
invoke-virtual {v0, v3}, Ljava/io/File;->renameTo(Ljava/io/File;)Z
move-result v0
.line 86
if-eqz v0, :cond_6f
.line 87
invoke-virtual {v2}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->a()V
.line 88
invoke-virtual {v2}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/FileLock;->b()V
.line 89
invoke-static {}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/f;->a()Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/f;
move-result-object v0
new-instance v2, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c$1;
invoke-direct {v2, v3}, Lcom/bytedance/sdk/openadsdk/preload/geckox/g/c$1;-><init>(Ljava/io/File;)V
invoke-virtual {v0, v2}, Lcom/bytedance/sdk/openadsdk/preload/geckox/utils/f;->execute(Ljava/lang/Runnable;)V
.line 96
:cond_6f
monitor-exit v1
:try_end_70
.catchall {:try_start_32 .. :try_end_70} :catchall_2f
goto :goto_a
.end method