a.smali
.class public final Landroidx/room/util/a;
.super Ljava/lang/Object;
.source "SourceFile"
# static fields
.field public static final e:Ljava/util/HashMap;
.annotation system Ldalvik/annotation/Signature;
value = {
"Ljava/util/Map<",
"Ljava/lang/String;",
"Ljava/util/concurrent/locks/Lock;",
">;"
}
.end annotation
.end field
# instance fields
.field public final a:Ljava/io/File;
.field public final b:Ljava/util/concurrent/locks/Lock;
.field public final c:Z
.field public d:Ljava/nio/channels/FileChannel;
# direct methods
.method public static constructor <clinit>()V
.registers 1
new-instance v0, Ljava/util/HashMap;
invoke-direct {v0}, Ljava/util/HashMap;-><init>()V
sput-object v0, Landroidx/room/util/a;->e:Ljava/util/HashMap;
return-void
.end method
.method public constructor <init>(Ljava/lang/String;Ljava/io/File;Z)V
.registers 6
.line 1
invoke-direct {p0}, Ljava/lang/Object;-><init>()V
.line 2
new-instance v0, Ljava/io/File;
const-string v1, ".lck"
.line 3
invoke-static {p1, v1}, Landroidx/appcompat/e;->g(Ljava/lang/String;Ljava/lang/String;)Ljava/lang/String;
move-result-object p1
.line 4
invoke-direct {v0, p2, p1}, Ljava/io/File;-><init>(Ljava/io/File;Ljava/lang/String;)V
iput-object v0, p0, Landroidx/room/util/a;->a:Ljava/io/File;
.line 5
invoke-virtual {v0}, Ljava/io/File;->getAbsolutePath()Ljava/lang/String;
move-result-object p1
.line 6
sget-object p2, Landroidx/room/util/a;->e:Ljava/util/HashMap;
monitor-enter p2
.line 7
:try_start_17
invoke-virtual {p2, p1}, Ljava/util/HashMap;->get(Ljava/lang/Object;)Ljava/lang/Object;
move-result-object v0
check-cast v0, Ljava/util/concurrent/locks/Lock;
if-nez v0, :cond_27
.line 8
new-instance v0, Ljava/util/concurrent/locks/ReentrantLock;
invoke-direct {v0}, Ljava/util/concurrent/locks/ReentrantLock;-><init>()V
.line 9
invoke-virtual {p2, p1, v0}, Ljava/util/HashMap;->put(Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Object;
.line 10
:cond_27
monitor-exit p2
:try_end_28
.catchall {:try_start_17 .. :try_end_28} :catchall_2d
.line 11
iput-object v0, p0, Landroidx/room/util/a;->b:Ljava/util/concurrent/locks/Lock;
.line 12
iput-boolean p3, p0, Landroidx/room/util/a;->c:Z
return-void
:catchall_2d
move-exception p1
.line 13
:try_start_2e
monitor-exit p2
:try_end_2f
.catchall {:try_start_2e .. :try_end_2f} :catchall_2d
throw p1
.end method
# virtual methods
.method public final a()V
.registers 2
.line 1
iget-object v0, p0, Landroidx/room/util/a;->d:Ljava/nio/channels/FileChannel;
if-eqz v0, :cond_7
.line 2
:try_start_4
invoke-virtual {v0}, Ljava/nio/channels/spi/AbstractInterruptibleChannel;->close()V
:try_end_7
.catch Ljava/io/IOException; {:try_start_4 .. :try_end_7} :catch_7
.line 3
:catch_7
:cond_7
iget-object v0, p0, Landroidx/room/util/a;->b:Ljava/util/concurrent/locks/Lock;
invoke-interface {v0}, Ljava/util/concurrent/locks/Lock;->unlock()V
return-void
.end method