k.smali
.class public Lcom/alibaba/mtl/log/d/k;
.super Ljava/lang/Object;
.source "MutiProcessLock.java"
# static fields
.field static a:Ljava/io/File;
.field static a:Ljava/nio/channels/FileChannel;
.field static a:Ljava/nio/channels/FileLock;
# direct methods
.method static constructor <clinit>()V
.registers 0
return-void
.end method
.method public static declared-synchronized c(Landroid/content/Context;)Z
.registers 6
const-class v0, Lcom/alibaba/mtl/log/d/k;
monitor-enter v0
.line 1
:try_start_3
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/io/File;
if-nez v1, :cond_28
.line 2
new-instance v1, Ljava/io/File;
new-instance v2, Ljava/lang/StringBuilder;
invoke-direct {v2}, Ljava/lang/StringBuilder;-><init>()V
invoke-virtual {p0}, Landroid/content/Context;->getFilesDir()Ljava/io/File;
move-result-object p0
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
sget-object p0, Ljava/io/File;->separator:Ljava/lang/String;
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
const-string p0, "ap.Lock"
invoke-virtual {v2, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v2}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-direct {v1, p0}, Ljava/io/File;-><init>(Ljava/lang/String;)V
sput-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/io/File;
.line 3
:cond_28
sget-object p0, Lcom/alibaba/mtl/log/d/k;->a:Ljava/io/File;
invoke-virtual {p0}, Ljava/io/File;->exists()Z
move-result p0
:try_end_2e
.catchall {:try_start_3 .. :try_end_2e} :catchall_77
if-nez p0, :cond_36
.line 4
:try_start_30
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/io/File;
invoke-virtual {v1}, Ljava/io/File;->createNewFile()Z
move-result p0
:try_end_36
.catch Ljava/io/IOException; {:try_start_30 .. :try_end_36} :catch_36
.catchall {:try_start_30 .. :try_end_36} :catchall_77
:catch_36
:cond_36
const/4 v1, 0x1
if-nez p0, :cond_3b
.line 5
monitor-exit v0
return v1
.line 6
:cond_3b
:try_start_3b
sget-object p0, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
:try_end_3d
.catchall {:try_start_3b .. :try_end_3d} :catchall_77
const/4 v2, 0x0
if-nez p0, :cond_52
.line 7
:try_start_40
new-instance p0, Ljava/io/RandomAccessFile;
sget-object v3, Lcom/alibaba/mtl/log/d/k;->a:Ljava/io/File;
const-string v4, "rw"
invoke-direct {p0, v3, v4}, Ljava/io/RandomAccessFile;-><init>(Ljava/io/File;Ljava/lang/String;)V
invoke-virtual {p0}, Ljava/io/RandomAccessFile;->getChannel()Ljava/nio/channels/FileChannel;
move-result-object p0
sput-object p0, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
:try_end_4f
.catch Ljava/lang/Exception; {:try_start_40 .. :try_end_4f} :catch_50
.catchall {:try_start_40 .. :try_end_4f} :catchall_77
goto :goto_52
.line 8
:catch_50
monitor-exit v0
return v2
.line 9
:cond_52
:goto_52
:try_start_52
sget-object p0, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
invoke-virtual {p0}, Ljava/nio/channels/FileChannel;->tryLock()Ljava/nio/channels/FileLock;
move-result-object p0
if-eqz p0, :cond_5f
.line 10
sput-object p0, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileLock;
:try_end_5c
.catch Ljava/lang/Throwable; {:try_start_52 .. :try_end_5c} :catch_5e
.catchall {:try_start_52 .. :try_end_5c} :catchall_77
.line 11
monitor-exit v0
return v1
:catch_5e
const/4 p0, 0x0
:cond_5f
:try_start_5f
const-string v1, "TAG"
.line 12
new-instance v3, Ljava/lang/StringBuilder;
invoke-direct {v3}, Ljava/lang/StringBuilder;-><init>()V
const-string v4, "mLock:"
invoke-virtual {v3, v4}, Ljava/lang/StringBuilder;->append(Ljava/lang/String;)Ljava/lang/StringBuilder;
invoke-virtual {v3, p0}, Ljava/lang/StringBuilder;->append(Ljava/lang/Object;)Ljava/lang/StringBuilder;
invoke-virtual {v3}, Ljava/lang/StringBuilder;->toString()Ljava/lang/String;
move-result-object p0
invoke-static {v1, p0}, Landroid/util/Log;->d(Ljava/lang/String;Ljava/lang/String;)I
:try_end_75
.catchall {:try_start_5f .. :try_end_75} :catchall_77
.line 13
monitor-exit v0
return v2
:catchall_77
move-exception p0
monitor-exit v0
throw p0
.end method
.method public static declared-synchronized release()V
.registers 3
const-class v0, Lcom/alibaba/mtl/log/d/k;
monitor-enter v0
.line 1
:try_start_3
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileLock;
:try_end_5
.catchall {:try_start_3 .. :try_end_5} :catchall_26
const/4 v2, 0x0
if-eqz v1, :cond_14
.line 2
:try_start_8
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileLock;
invoke-virtual {v1}, Ljava/nio/channels/FileLock;->release()V
:try_end_d
.catch Ljava/io/IOException; {:try_start_8 .. :try_end_d} :catch_d
.catchall {:try_start_8 .. :try_end_d} :catchall_10
.line 3
:catch_d
:try_start_d
sput-object v2, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileLock;
goto :goto_14
:catchall_10
move-exception v1
sput-object v2, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileLock;
throw v1
.line 4
:cond_14
:goto_14
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
:try_end_16
.catchall {:try_start_d .. :try_end_16} :catchall_26
if-eqz v1, :cond_24
.line 5
:try_start_18
sget-object v1, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
invoke-virtual {v1}, Ljava/nio/channels/FileChannel;->close()V
:try_end_1d
.catch Ljava/lang/Exception; {:try_start_18 .. :try_end_1d} :catch_1d
.catchall {:try_start_18 .. :try_end_1d} :catchall_20
.line 6
:catch_1d
:try_start_1d
sput-object v2, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
goto :goto_24
:catchall_20
move-exception v1
sput-object v2, Lcom/alibaba/mtl/log/d/k;->a:Ljava/nio/channels/FileChannel;
throw v1
:try_end_24
.catchall {:try_start_1d .. :try_end_24} :catchall_26
.line 7
:cond_24
:goto_24
monitor-exit v0
return-void
:catchall_26
move-exception v1
monitor-exit v0
throw v1
.end method