package okhttp3.internal.concurrent; import java.util.ArrayList; import java.util.Iterator; import java.util.List; import java.util.concurrent.CountDownLatch; import java.util.concurrent.RejectedExecutionException; import java.util.logging.Level; import o.C14866gag; import o.C14881gav; import o.C14957gcv; import o.InterfaceC14890gbN; import okhttp3.internal.Util; /* loaded from: classes.dex */ public final class TaskQueue { private Task activeTask; private boolean cancelActiveTask; private final List futureTasks; private final String name; private boolean shutdown; private final TaskRunner taskRunner; public TaskQueue(TaskRunner taskRunner, String str) { C14957gcv.e(taskRunner, ""); C14957gcv.e(str, ""); this.taskRunner = taskRunner; this.name = str; this.futureTasks = new ArrayList(); } public final List getScheduledTasks() { List d; synchronized (this.taskRunner) { d = C14881gav.d((Iterable) getFutureTasks$okhttp()); } return d; } public static /* synthetic */ void schedule$default(TaskQueue taskQueue, Task task, long j, int i, Object obj) { if ((i & 2) != 0) { j = 0; } taskQueue.schedule(task, j); } public final void schedule(Task task, long j) { C14957gcv.e(task, ""); synchronized (this.taskRunner) { if (getShutdown$okhttp()) { if (task.getCancelable()) { if (TaskRunner.Companion.getLogger().isLoggable(Level.FINE)) { TaskLoggerKt.access$log(task, this, "schedule canceled (queue is shutdown)"); } return; } else { if (TaskRunner.Companion.getLogger().isLoggable(Level.FINE)) { TaskLoggerKt.access$log(task, this, "schedule failed (queue is shutdown)"); } throw new RejectedExecutionException(); } } if (scheduleAndDecide$okhttp(task, j, false)) { getTaskRunner$okhttp().kickCoordinator$okhttp(this); } C14866gag c14866gag = C14866gag.c; } } public static /* synthetic */ void schedule$default(TaskQueue taskQueue, String str, long j, InterfaceC14890gbN interfaceC14890gbN, int i, Object obj) { if ((i & 2) != 0) { j = 0; } C14957gcv.e(str, ""); C14957gcv.e(interfaceC14890gbN, ""); taskQueue.schedule(new TaskQueue$schedule$2(str, interfaceC14890gbN), j); } public final void schedule(String str, long j, InterfaceC14890gbN interfaceC14890gbN) { C14957gcv.e(str, ""); C14957gcv.e(interfaceC14890gbN, ""); schedule(new TaskQueue$schedule$2(str, interfaceC14890gbN), j); } public static /* synthetic */ void execute$default(TaskQueue taskQueue, String str, long j, boolean z, InterfaceC14890gbN interfaceC14890gbN, int i, Object obj) { if ((i & 2) != 0) { j = 0; } if ((i & 4) != 0) { z = true; } C14957gcv.e(str, ""); C14957gcv.e(interfaceC14890gbN, ""); taskQueue.schedule(new TaskQueue$execute$1(str, z, interfaceC14890gbN), j); } public final void execute(String str, long j, boolean z, InterfaceC14890gbN interfaceC14890gbN) { C14957gcv.e(str, ""); C14957gcv.e(interfaceC14890gbN, ""); schedule(new TaskQueue$execute$1(str, z, interfaceC14890gbN), j); } public final CountDownLatch idleLatch() { synchronized (this.taskRunner) { if (getActiveTask$okhttp() == null && getFutureTasks$okhttp().isEmpty()) { return new CountDownLatch(0); } Task activeTask$okhttp = getActiveTask$okhttp(); if (activeTask$okhttp instanceof AwaitIdleTask) { return ((AwaitIdleTask) activeTask$okhttp).getLatch(); } for (Task task : getFutureTasks$okhttp()) { if (task instanceof AwaitIdleTask) { return ((AwaitIdleTask) task).getLatch(); } } AwaitIdleTask awaitIdleTask = new AwaitIdleTask(); if (scheduleAndDecide$okhttp(awaitIdleTask, 0L, false)) { getTaskRunner$okhttp().kickCoordinator$okhttp(this); } return awaitIdleTask.getLatch(); } } /* loaded from: classes6.dex */ static final class AwaitIdleTask extends Task { private final CountDownLatch latch; public AwaitIdleTask() { super(C14957gcv.c(Util.okHttpName, (Object) " awaitIdle"), false); this.latch = new CountDownLatch(1); } @Override // okhttp3.internal.concurrent.Task public final long runOnce() { this.latch.countDown(); return -1L; } public final CountDownLatch getLatch() { return this.latch; } } public final boolean scheduleAndDecide$okhttp(Task task, long j, boolean z) { String c; C14957gcv.e(task, ""); task.initQueue$okhttp(this); long nanoTime = this.taskRunner.getBackend().nanoTime(); long j2 = nanoTime + j; int indexOf = this.futureTasks.indexOf(task); if (indexOf != -1) { if (task.getNextExecuteNanoTime$okhttp() > j2) { this.futureTasks.remove(indexOf); } else { if (TaskRunner.Companion.getLogger().isLoggable(Level.FINE)) { TaskLoggerKt.access$log(task, this, "already scheduled"); } return false; } } task.setNextExecuteNanoTime$okhttp(j2); if (TaskRunner.Companion.getLogger().isLoggable(Level.FINE)) { if (z) { c = C14957gcv.c("run again after ", (Object) TaskLoggerKt.formatDuration(j2 - nanoTime)); } else { c = C14957gcv.c("scheduled after ", (Object) TaskLoggerKt.formatDuration(j2 - nanoTime)); } TaskLoggerKt.access$log(task, this, c); } Iterator it = this.futureTasks.iterator(); int i = 0; while (true) { if (!it.hasNext()) { i = -1; break; } if (it.next().getNextExecuteNanoTime$okhttp() - nanoTime > j) { break; } i++; } if (i == -1) { i = this.futureTasks.size(); } this.futureTasks.add(i, task); return i == 0; } public final boolean cancelAllAndDecide$okhttp() { Task task = this.activeTask; if (task != null) { C14957gcv.e(task); if (task.getCancelable()) { this.cancelActiveTask = true; } } int size = this.futureTasks.size() - 1; boolean z = false; if (size >= 0) { while (true) { int i = size - 1; if (this.futureTasks.get(size).getCancelable()) { Task task2 = this.futureTasks.get(size); if (TaskRunner.Companion.getLogger().isLoggable(Level.FINE)) { TaskLoggerKt.access$log(task2, this, "canceled"); } this.futureTasks.remove(size); z = true; } if (i < 0) { break; } size = i; } } return z; } public final void cancelAll() { if (!Util.assertionsEnabled || !Thread.holdsLock(this)) { synchronized (this.taskRunner) { if (cancelAllAndDecide$okhttp()) { getTaskRunner$okhttp().kickCoordinator$okhttp(this); } C14866gag c14866gag = C14866gag.c; } return; } StringBuilder sb = new StringBuilder("Thread "); sb.append((Object) Thread.currentThread().getName()); sb.append(" MUST NOT hold lock on "); sb.append(this); throw new AssertionError(sb.toString()); } public final void shutdown() { if (!Util.assertionsEnabled || !Thread.holdsLock(this)) { synchronized (this.taskRunner) { setShutdown$okhttp(true); if (cancelAllAndDecide$okhttp()) { getTaskRunner$okhttp().kickCoordinator$okhttp(this); } C14866gag c14866gag = C14866gag.c; } return; } StringBuilder sb = new StringBuilder("Thread "); sb.append((Object) Thread.currentThread().getName()); sb.append(" MUST NOT hold lock on "); sb.append(this); throw new AssertionError(sb.toString()); } public final String toString() { return this.name; } public final void setShutdown$okhttp(boolean z) { this.shutdown = z; } public final void setCancelActiveTask$okhttp(boolean z) { this.cancelActiveTask = z; } public final void setActiveTask$okhttp(Task task) { this.activeTask = task; } public final TaskRunner getTaskRunner$okhttp() { return this.taskRunner; } public final boolean getShutdown$okhttp() { return this.shutdown; } public final String getName$okhttp() { return this.name; } public final List getFutureTasks$okhttp() { return this.futureTasks; } public final boolean getCancelActiveTask$okhttp() { return this.cancelActiveTask; } public final Task getActiveTask$okhttp() { return this.activeTask; } }