package j;

import java.io.IOException;
import java.io.InterruptedIOException;
import java.util.concurrent.TimeUnit;

/* JADX INFO: compiled from: Timeout.kt */
/* JADX INFO: loaded from: classes.dex */
public class c0 {
    public static final b Companion = new b(null);
    public static final c0 NONE = new a();
    private long deadlineNanoTime;
    private boolean hasDeadline;
    private long timeoutNanos;

    /* JADX INFO: compiled from: Timeout.kt */
    public static final class a extends c0 {
        @Override // j.c0
        public c0 deadlineNanoTime(long j2) {
            return this;
        }

        @Override // j.c0
        public void throwIfReached() {
        }

        @Override // j.c0
        public c0 timeout(long j2, TimeUnit timeUnit) {
            g.h0.c.l.f(timeUnit, "unit");
            return this;
        }
    }

    /* JADX INFO: compiled from: Timeout.kt */
    public static final class b {
        public b(g.h0.c.g gVar) {
        }

        public final long a(long j2, long j3) {
            return (j2 != 0 && (j3 == 0 || j2 < j3)) ? j2 : j3;
        }
    }

    public c0 clearDeadline() {
        this.hasDeadline = false;
        return this;
    }

    public c0 clearTimeout() {
        this.timeoutNanos = 0L;
        return this;
    }

    public final c0 deadline(long j2, TimeUnit timeUnit) {
        g.h0.c.l.f(timeUnit, "unit");
        if (j2 > 0) {
            return deadlineNanoTime(timeUnit.toNanos(j2) + System.nanoTime());
        }
        throw new IllegalArgumentException(d.b.a.a.a.l("duration <= 0: ", j2).toString());
    }

    public long deadlineNanoTime() {
        if (this.hasDeadline) {
            return this.deadlineNanoTime;
        }
        throw new IllegalStateException("No deadline".toString());
    }

    public boolean hasDeadline() {
        return this.hasDeadline;
    }

    public final void intersectWith(c0 c0Var, g.h0.b.a<g.a0> aVar) {
        g.h0.c.l.f(c0Var, "other");
        g.h0.c.l.f(aVar, "block");
        long jTimeoutNanos = timeoutNanos();
        long jA = Companion.a(c0Var.timeoutNanos(), timeoutNanos());
        TimeUnit timeUnit = TimeUnit.NANOSECONDS;
        timeout(jA, timeUnit);
        if (!hasDeadline()) {
            if (c0Var.hasDeadline()) {
                deadlineNanoTime(c0Var.deadlineNanoTime());
            }
            try {
                aVar.invoke();
                timeout(jTimeoutNanos, timeUnit);
                if (c0Var.hasDeadline()) {
                    clearDeadline();
                    return;
                }
                return;
            } catch (Throwable th) {
                timeout(jTimeoutNanos, TimeUnit.NANOSECONDS);
                if (c0Var.hasDeadline()) {
                    clearDeadline();
                }
                throw th;
            }
        }
        long jDeadlineNanoTime = deadlineNanoTime();
        if (c0Var.hasDeadline()) {
            deadlineNanoTime(Math.min(deadlineNanoTime(), c0Var.deadlineNanoTime()));
        }
        try {
            aVar.invoke();
            timeout(jTimeoutNanos, timeUnit);
            if (c0Var.hasDeadline()) {
                deadlineNanoTime(jDeadlineNanoTime);
            }
        } catch (Throwable th2) {
            timeout(jTimeoutNanos, TimeUnit.NANOSECONDS);
            if (c0Var.hasDeadline()) {
                deadlineNanoTime(jDeadlineNanoTime);
            }
            throw th2;
        }
    }

    public void throwIfReached() throws IOException {
        if (Thread.interrupted()) {
            Thread.currentThread().interrupt();
            throw new InterruptedIOException("interrupted");
        }
        if (this.hasDeadline && this.deadlineNanoTime - System.nanoTime() <= 0) {
            throw new InterruptedIOException("deadline reached");
        }
    }

    public c0 timeout(long j2, TimeUnit timeUnit) {
        g.h0.c.l.f(timeUnit, "unit");
        if (!(j2 >= 0)) {
            throw new IllegalArgumentException(d.b.a.a.a.l("timeout < 0: ", j2).toString());
        }
        this.timeoutNanos = timeUnit.toNanos(j2);
        return this;
    }

    public long timeoutNanos() {
        return this.timeoutNanos;
    }

    public final void waitUntilNotified(Object obj) throws InterruptedIOException {
        g.h0.c.l.f(obj, "monitor");
        try {
            boolean zHasDeadline = hasDeadline();
            long jTimeoutNanos = timeoutNanos();
            long jNanoTime = 0;
            if (!zHasDeadline && jTimeoutNanos == 0) {
                obj.wait();
                return;
            }
            long jNanoTime2 = System.nanoTime();
            if (zHasDeadline && jTimeoutNanos != 0) {
                jTimeoutNanos = Math.min(jTimeoutNanos, deadlineNanoTime() - jNanoTime2);
            } else if (zHasDeadline) {
                jTimeoutNanos = deadlineNanoTime() - jNanoTime2;
            }
            if (jTimeoutNanos > 0) {
                long j2 = jTimeoutNanos / 1000000;
                obj.wait(j2, (int) (jTimeoutNanos - (1000000 * j2)));
                jNanoTime = System.nanoTime() - jNanoTime2;
            }
            if (jNanoTime >= jTimeoutNanos) {
                throw new InterruptedIOException("timeout");
            }
        } catch (InterruptedException unused) {
            Thread.currentThread().interrupt();
            throw new InterruptedIOException("interrupted");
        }
    }

    public c0 deadlineNanoTime(long j2) {
        this.hasDeadline = true;
        this.deadlineNanoTime = j2;
        return this;
    }
}
