package com.google.firebase.concurrent; import com.google.android.gms.common.internal.Preconditions; import java.util.ArrayDeque; import java.util.Deque; import java.util.concurrent.Executor; import java.util.logging.Logger; /* JADX INFO: Access modifiers changed from: package-private */ /* loaded from: classes3.dex */ public final class SequentialExecutor implements Executor { private static final Logger log = Logger.getLogger(SequentialExecutor.class.getName()); private final Executor executor; private final Deque queue = new ArrayDeque(); private WorkerRunningState workerRunningState = WorkerRunningState.IDLE; private long workerRunCount = 0; private final QueueWorker worker = new QueueWorker(); /* loaded from: classes3.dex */ public final class QueueWorker implements Runnable { Runnable task; private QueueWorker() { } /* JADX WARN: Code restructure failed: missing block: B:10:0x004e, code lost: r1 = r1 | java.lang.Thread.interrupted(); r2 = null; */ /* JADX WARN: Code restructure failed: missing block: B:12:0x0050, code lost: r8.task.run(); */ /* JADX WARN: Code restructure failed: missing block: B:16:0x005a, code lost: r0 = move-exception; */ /* JADX WARN: Code restructure failed: missing block: B:17:0x007a, code lost: r8.task = null; */ /* JADX WARN: Code restructure failed: missing block: B:18:0x007c, code lost: throw r0; */ /* JADX WARN: Code restructure failed: missing block: B:20:0x005c, code lost: r3 = move-exception; */ /* JADX WARN: Code restructure failed: missing block: B:21:0x005d, code lost: com.google.firebase.concurrent.SequentialExecutor.log.log(java.util.logging.Level.SEVERE, "Exception while executing runnable " + r8.task, (java.lang.Throwable) r3); */ /* JADX WARN: Code restructure failed: missing block: B:26:0x0045, code lost: if (r1 == false) goto L50; */ /* JADX WARN: Code restructure failed: missing block: B:30:?, code lost: return; */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ private void workOnQueue() { /* r8 = this; r0 = 0 r1 = r0 L2: com.google.firebase.concurrent.SequentialExecutor r2 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L58 java.util.Deque r2 = com.google.firebase.concurrent.SequentialExecutor.access$100(r2) // Catch: java.lang.Throwable -> L58 monitor-enter(r2) // Catch: java.lang.Throwable -> L58 if (r0 != 0) goto L2d com.google.firebase.concurrent.SequentialExecutor r0 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r0 = com.google.firebase.concurrent.SequentialExecutor.access$200(r0) // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.RUNNING // Catch: java.lang.Throwable -> L20 if (r0 != r3) goto L22 monitor-exit(r2) // Catch: java.lang.Throwable -> L20 if (r1 == 0) goto L48 L18: java.lang.Thread r8 = java.lang.Thread.currentThread() r8.interrupt() goto L48 L20: r8 = move-exception goto L7d L22: com.google.firebase.concurrent.SequentialExecutor r0 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor.access$308(r0) // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor r0 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor.access$202(r0, r3) // Catch: java.lang.Throwable -> L20 r0 = 1 L2d: com.google.firebase.concurrent.SequentialExecutor r3 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 java.util.Deque r3 = com.google.firebase.concurrent.SequentialExecutor.access$100(r3) // Catch: java.lang.Throwable -> L20 java.lang.Object r3 = r3.poll() // Catch: java.lang.Throwable -> L20 java.lang.Runnable r3 = (java.lang.Runnable) r3 // Catch: java.lang.Throwable -> L20 r8.task = r3 // Catch: java.lang.Throwable -> L20 if (r3 != 0) goto L49 com.google.firebase.concurrent.SequentialExecutor r8 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r0 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.IDLE // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor.access$202(r8, r0) // Catch: java.lang.Throwable -> L20 monitor-exit(r2) // Catch: java.lang.Throwable -> L20 if (r1 == 0) goto L48 goto L18 L48: return L49: monitor-exit(r2) // Catch: java.lang.Throwable -> L20 boolean r2 = java.lang.Thread.interrupted() // Catch: java.lang.Throwable -> L58 r1 = r1 | r2 r2 = 0 java.lang.Runnable r3 = r8.task // Catch: java.lang.Throwable -> L5a java.lang.RuntimeException -> L5c r3.run() // Catch: java.lang.Throwable -> L5a java.lang.RuntimeException -> L5c L55: r8.task = r2 // Catch: java.lang.Throwable -> L58 goto L2 L58: r8 = move-exception goto L7f L5a: r0 = move-exception goto L7a L5c: r3 = move-exception java.util.logging.Logger r4 = com.google.firebase.concurrent.SequentialExecutor.access$400() // Catch: java.lang.Throwable -> L5a java.util.logging.Level r5 = java.util.logging.Level.SEVERE // Catch: java.lang.Throwable -> L5a java.lang.StringBuilder r6 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L5a r6.() // Catch: java.lang.Throwable -> L5a java.lang.String r7 = "Exception while executing runnable " r6.append(r7) // Catch: java.lang.Throwable -> L5a java.lang.Runnable r7 = r8.task // Catch: java.lang.Throwable -> L5a r6.append(r7) // Catch: java.lang.Throwable -> L5a java.lang.String r6 = r6.toString() // Catch: java.lang.Throwable -> L5a r4.log(r5, r6, r3) // Catch: java.lang.Throwable -> L5a goto L55 L7a: r8.task = r2 // Catch: java.lang.Throwable -> L58 throw r0 // Catch: java.lang.Throwable -> L58 L7d: monitor-exit(r2) // Catch: java.lang.Throwable -> L20 throw r8 // Catch: java.lang.Throwable -> L58 L7f: if (r1 == 0) goto L88 java.lang.Thread r0 = java.lang.Thread.currentThread() r0.interrupt() L88: throw r8 */ throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.concurrent.SequentialExecutor.QueueWorker.workOnQueue():void"); } @Override // java.lang.Runnable public void run() { try { workOnQueue(); } catch (Error e4) { synchronized (SequentialExecutor.this.queue) { SequentialExecutor.this.workerRunningState = WorkerRunningState.IDLE; throw e4; } } } public String toString() { Runnable runnable = this.task; if (runnable != null) { return "SequentialExecutorWorker{running=" + runnable + "}"; } return "SequentialExecutorWorker{state=" + SequentialExecutor.this.workerRunningState + "}"; } } /* loaded from: classes3.dex */ public enum WorkerRunningState { IDLE, QUEUING, QUEUED, RUNNING } public SequentialExecutor(Executor executor) { this.executor = (Executor) Preconditions.checkNotNull(executor); } public static /* synthetic */ long access$308(SequentialExecutor sequentialExecutor) { long j4 = sequentialExecutor.workerRunCount; sequentialExecutor.workerRunCount = 1 + j4; return j4; } /* JADX WARN: Removed duplicated region for block: B:45:0x0064 A[ADDED_TO_REGION] */ @Override // java.util.concurrent.Executor /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public void execute(final java.lang.Runnable r8) { /* r7 = this; com.google.android.gms.common.internal.Preconditions.checkNotNull(r8) java.util.Deque r0 = r7.queue monitor-enter(r0) com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r1 = r7.workerRunningState // Catch: java.lang.Throwable -> L6b com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r2 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.RUNNING // Catch: java.lang.Throwable -> L6b if (r1 == r2) goto L6d com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r2 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUED // Catch: java.lang.Throwable -> L6b if (r1 != r2) goto L11 goto L6d L11: long r3 = r7.workerRunCount // Catch: java.lang.Throwable -> L6b com.google.firebase.concurrent.SequentialExecutor$1 r1 = new com.google.firebase.concurrent.SequentialExecutor$1 // Catch: java.lang.Throwable -> L6b r1.() // Catch: java.lang.Throwable -> L6b java.util.Deque r8 = r7.queue // Catch: java.lang.Throwable -> L6b r8.add(r1) // Catch: java.lang.Throwable -> L6b com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r8 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUING // Catch: java.lang.Throwable -> L6b r7.workerRunningState = r8 // Catch: java.lang.Throwable -> L6b monitor-exit(r0) // Catch: java.lang.Throwable -> L6b java.util.concurrent.Executor r0 = r7.executor // Catch: java.lang.Throwable -> L44 com.google.firebase.concurrent.SequentialExecutor$QueueWorker r5 = r7.worker // Catch: java.lang.Throwable -> L44 r0.execute(r5) // Catch: java.lang.Throwable -> L44 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r0 = r7.workerRunningState if (r0 == r8) goto L2e return L2e: java.util.Deque r0 = r7.queue monitor-enter(r0) long r5 = r7.workerRunCount // Catch: java.lang.Throwable -> L3e int r1 = (r5 > r3 ? 1 : (r5 == r3 ? 0 : -1)) if (r1 != 0) goto L40 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r1 = r7.workerRunningState // Catch: java.lang.Throwable -> L3e if (r1 != r8) goto L40 r7.workerRunningState = r2 // Catch: java.lang.Throwable -> L3e goto L40 L3e: r7 = move-exception goto L42 L40: monitor-exit(r0) // Catch: java.lang.Throwable -> L3e return L42: monitor-exit(r0) // Catch: java.lang.Throwable -> L3e throw r7 L44: r8 = move-exception java.util.Deque r2 = r7.queue monitor-enter(r2) com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r0 = r7.workerRunningState // Catch: java.lang.Throwable -> L53 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.IDLE // Catch: java.lang.Throwable -> L53 if (r0 == r3) goto L55 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUING // Catch: java.lang.Throwable -> L53 if (r0 != r3) goto L5f goto L55 L53: r7 = move-exception goto L69 L55: java.util.Deque r7 = r7.queue // Catch: java.lang.Throwable -> L53 boolean r7 = r7.removeLastOccurrence(r1) // Catch: java.lang.Throwable -> L53 if (r7 == 0) goto L5f r7 = 1 goto L60 L5f: r7 = 0 L60: boolean r0 = r8 instanceof java.util.concurrent.RejectedExecutionException // Catch: java.lang.Throwable -> L53 if (r0 == 0) goto L68 if (r7 != 0) goto L68 monitor-exit(r2) // Catch: java.lang.Throwable -> L53 return L68: throw r8 // Catch: java.lang.Throwable -> L53 L69: monitor-exit(r2) // Catch: java.lang.Throwable -> L53 throw r7 L6b: r7 = move-exception goto L74 L6d: java.util.Deque r7 = r7.queue // Catch: java.lang.Throwable -> L6b r7.add(r8) // Catch: java.lang.Throwable -> L6b monitor-exit(r0) // Catch: java.lang.Throwable -> L6b return L74: monitor-exit(r0) // Catch: java.lang.Throwable -> L6b throw r7 */ throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.concurrent.SequentialExecutor.execute(java.lang.Runnable):void"); } public String toString() { return "SequentialExecutor@" + System.identityHashCode(this) + "{" + this.executor + "}"; } }