package androidx.sqlite.util; import android.util.Log; import androidx.annotation.RestrictTo; import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.nio.channels.FileChannel; import java.util.HashMap; import java.util.Map; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; import kotlin.jvm.internal.DefaultConstructorMarker; import kotlin.jvm.internal.Intrinsics; import kotlin.jvm.internal.SourceDebugExtension; @RestrictTo({RestrictTo.Scope.LIBRARY_GROUP}) @SourceDebugExtension({"SMAP\nProcessLock.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ProcessLock.kt\nandroidx/sqlite/util/ProcessLock\n+ 2 fake.kt\nkotlin/jvm/internal/FakeKt\n*L\n1#1,103:1\n1#2:104\n*E\n"}) /* loaded from: classes.dex */ public final class ProcessLock { private static final String TAG = "SupportSQLiteLock"; private FileChannel lockChannel; private final File lockFile; private final boolean processLock; private final Lock threadLock; public static final Companion Companion = new Companion(null); private static final Map threadLocksMap = new HashMap(); public ProcessLock(String name, File file, boolean z) { File file2; Intrinsics.checkNotNullParameter(name, "name"); this.processLock = z; if (file != null) { file2 = new File(file, name + ".lck"); } else { file2 = null; } this.lockFile = file2; this.threadLock = Companion.getThreadLock(name); } public static /* synthetic */ void lock$default(ProcessLock processLock, boolean z, int i, Object obj) { if ((i & 1) != 0) { z = processLock.processLock; } processLock.lock(z); } public final void lock(boolean z) { this.threadLock.lock(); if (z) { try { File file = this.lockFile; if (file == null) { throw new IOException("No lock directory was provided."); } File parentFile = file.getParentFile(); if (parentFile != null) { parentFile.mkdirs(); } FileChannel channel = new FileOutputStream(this.lockFile).getChannel(); channel.lock(); this.lockChannel = channel; } catch (IOException e) { this.lockChannel = null; Log.w(TAG, "Unable to grab file lock.", e); } } } public final void unlock() { try { FileChannel fileChannel = this.lockChannel; if (fileChannel != null) { fileChannel.close(); } } catch (IOException unused) { } this.threadLock.unlock(); } @SourceDebugExtension({"SMAP\nProcessLock.kt\nKotlin\n*S Kotlin\n*F\n+ 1 ProcessLock.kt\nandroidx/sqlite/util/ProcessLock$Companion\n+ 2 Maps.kt\nkotlin/collections/MapsKt__MapsKt\n*L\n1#1,103:1\n361#2,7:104\n*S KotlinDebug\n*F\n+ 1 ProcessLock.kt\nandroidx/sqlite/util/ProcessLock$Companion\n*L\n99#1:104,7\n*E\n"}) public static final class Companion { public /* synthetic */ Companion(DefaultConstructorMarker defaultConstructorMarker) { this(); } private Companion() { } /* JADX INFO: Access modifiers changed from: private */ public final Lock getThreadLock(String str) { Lock lock; synchronized (ProcessLock.threadLocksMap) { try { Map map = ProcessLock.threadLocksMap; Object obj = map.get(str); if (obj == null) { obj = new ReentrantLock(); map.put(str, obj); } lock = (Lock) obj; } catch (Throwable th) { throw th; } } return lock; } } }