package kotlinx.coroutines.internal;

import java.util.WeakHashMap;
import java.util.concurrent.locks.ReentrantReadWriteLock;

/* JADX INFO: compiled from: ExceptionsConstructor.kt */
/* JADX INFO: loaded from: classes.dex */
final class j0 extends e {

    /* JADX INFO: renamed from: a, reason: collision with root package name */
    public static final j0 f5210a = new j0();

    /* JADX INFO: renamed from: b, reason: collision with root package name */
    private static final ReentrantReadWriteLock f5211b = new ReentrantReadWriteLock();

    /* JADX INFO: renamed from: c, reason: collision with root package name */
    private static final WeakHashMap<Class<? extends Throwable>, v1.l<Throwable, Throwable>> f5212c = new WeakHashMap<>();

    private j0() {
    }

    @Override // kotlinx.coroutines.internal.e
    public v1.l<Throwable, Throwable> a(Class<? extends Throwable> cls) {
        ReentrantReadWriteLock reentrantReadWriteLock = f5211b;
        ReentrantReadWriteLock.ReadLock lock = reentrantReadWriteLock.readLock();
        lock.lock();
        try {
            v1.l<Throwable, Throwable> lVar = f5212c.get(cls);
            if (lVar != null) {
                return lVar;
            }
            lock = reentrantReadWriteLock.readLock();
            int i3 = 0;
            int readHoldCount = reentrantReadWriteLock.getWriteHoldCount() == 0 ? reentrantReadWriteLock.getReadHoldCount() : 0;
            int i4 = 0;
            while (i4 < readHoldCount) {
                i4++;
            }
            ReentrantReadWriteLock.WriteLock writeLock = reentrantReadWriteLock.writeLock();
            writeLock.lock();
            try {
                WeakHashMap<Class<? extends Throwable>, v1.l<Throwable, Throwable>> weakHashMap = f5212c;
                v1.l<Throwable, Throwable> lVar2 = weakHashMap.get(cls);
                if (lVar2 == null) {
                    v1.l<Throwable, Throwable> lVarB = h.b(cls);
                    weakHashMap.put(cls, lVarB);
                    return lVarB;
                }
                while (i3 < readHoldCount) {
                    i3++;
                    lock.lock();
                }
                writeLock.unlock();
                return lVar2;
            } finally {
                while (i3 < readHoldCount) {
                    i3++;
                    lock.lock();
                }
                writeLock.unlock();
            }
        } finally {
            lock.unlock();
        }
    }
}
