package com.bumptech.glide.load.engine.cache; import com.bumptech.glide.util.Preconditions; import java.util.ArrayDeque; import java.util.HashMap; import java.util.Map; import java.util.Queue; import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; /* loaded from: classes.dex */ final class DiskCacheWriteLocker { private final Map a = new HashMap(); private final WriteLockPool b = new WriteLockPool(); private static class WriteLock { final Lock a = new ReentrantLock(); int b; WriteLock() { } } DiskCacheWriteLocker() { } void a(String str) { WriteLock writeLock; synchronized (this) { writeLock = this.a.get(str); if (writeLock == null) { writeLock = this.b.a(); this.a.put(str, writeLock); } writeLock.b++; } writeLock.a.lock(); } void b(String str) { WriteLock writeLock; synchronized (this) { WriteLock writeLock2 = this.a.get(str); Preconditions.a(writeLock2); writeLock = writeLock2; if (writeLock.b < 1) { throw new IllegalStateException("Cannot release a lock that is not held, safeKey: " + str + ", interestedThreads: " + writeLock.b); } writeLock.b--; if (writeLock.b == 0) { WriteLock remove = this.a.remove(str); if (!remove.equals(writeLock)) { throw new IllegalStateException("Removed the wrong lock, expected to remove: " + writeLock + ", but actually removed: " + remove + ", safeKey: " + str); } this.b.a(remove); } } writeLock.a.unlock(); } private static class WriteLockPool { private final Queue a = new ArrayDeque(); WriteLockPool() { } WriteLock a() { WriteLock poll; synchronized (this.a) { poll = this.a.poll(); } return poll == null ? new WriteLock() : poll; } void a(WriteLock writeLock) { synchronized (this.a) { if (this.a.size() < 10) { this.a.offer(writeLock); } } } } }