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; /* loaded from: classes3.dex */ public final class SequentialExecutor implements Executor { public static final Logger log = Logger.getLogger(SequentialExecutor.class.getName()); public final Executor executor; public final Deque queue = new ArrayDeque(); public WorkerRunningState workerRunningState = WorkerRunningState.IDLE; public long workerRunCount = 0; public final QueueWorker worker = new QueueWorker(); public enum WorkerRunningState { IDLE, QUEUING, QUEUED, RUNNING } public static /* synthetic */ long access$308(SequentialExecutor sequentialExecutor) { long j = sequentialExecutor.workerRunCount; sequentialExecutor.workerRunCount = 1 + j; return j; } public SequentialExecutor(Executor executor) { this.executor = (Executor) Preconditions.checkNotNull(executor); } /* JADX WARN: Removed duplicated region for block: B:45:0x0066 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 -> L6d com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r2 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.RUNNING // Catch: java.lang.Throwable -> L6d if (r1 == r2) goto L6f com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r2 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUED // Catch: java.lang.Throwable -> L6d if (r1 != r2) goto L11 goto L6f L11: long r3 = r7.workerRunCount // Catch: java.lang.Throwable -> L6d com.google.firebase.concurrent.SequentialExecutor$1 r1 = new com.google.firebase.concurrent.SequentialExecutor$1 // Catch: java.lang.Throwable -> L6d r1.() // Catch: java.lang.Throwable -> L6d java.util.Deque r8 = r7.queue // Catch: java.lang.Throwable -> L6d r8.add(r1) // Catch: java.lang.Throwable -> L6d com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r8 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUING // Catch: java.lang.Throwable -> L6d r7.workerRunningState = r8 // Catch: java.lang.Throwable -> L6d monitor-exit(r0) // Catch: java.lang.Throwable -> L6d java.util.concurrent.Executor r0 = r7.executor // Catch: java.lang.Error -> L44 java.lang.RuntimeException -> L46 com.google.firebase.concurrent.SequentialExecutor$QueueWorker r5 = r7.worker // Catch: java.lang.Error -> L44 java.lang.RuntimeException -> L46 r0.execute(r5) // Catch: java.lang.Error -> L44 java.lang.RuntimeException -> L46 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: r8 = move-exception goto L42 L40: monitor-exit(r0) // Catch: java.lang.Throwable -> L3e return L42: monitor-exit(r0) // Catch: java.lang.Throwable -> L3e throw r8 L44: r8 = move-exception goto L47 L46: r8 = move-exception L47: java.util.Deque r2 = r7.queue monitor-enter(r2) com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r0 = r7.workerRunningState // Catch: java.lang.Throwable -> L55 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.IDLE // Catch: java.lang.Throwable -> L55 if (r0 == r3) goto L57 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.QUEUING // Catch: java.lang.Throwable -> L55 if (r0 != r3) goto L61 goto L57 L55: r8 = move-exception goto L6b L57: java.util.Deque r0 = r7.queue // Catch: java.lang.Throwable -> L55 boolean r0 = r0.removeLastOccurrence(r1) // Catch: java.lang.Throwable -> L55 if (r0 == 0) goto L61 r0 = 1 goto L62 L61: r0 = 0 L62: boolean r1 = r8 instanceof java.util.concurrent.RejectedExecutionException // Catch: java.lang.Throwable -> L55 if (r1 == 0) goto L6a if (r0 != 0) goto L6a monitor-exit(r2) // Catch: java.lang.Throwable -> L55 return L6a: throw r8 // Catch: java.lang.Throwable -> L55 L6b: monitor-exit(r2) // Catch: java.lang.Throwable -> L55 throw r8 L6d: r8 = move-exception goto L76 L6f: java.util.Deque r1 = r7.queue // Catch: java.lang.Throwable -> L6d r1.add(r8) // Catch: java.lang.Throwable -> L6d monitor-exit(r0) // Catch: java.lang.Throwable -> L6d return L76: monitor-exit(r0) // Catch: java.lang.Throwable -> L6d throw r8 */ throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.concurrent.SequentialExecutor.execute(java.lang.Runnable):void"); } public final class QueueWorker implements Runnable { public Runnable task; public QueueWorker() { } @Override // java.lang.Runnable public void run() { try { workOnQueue(); } catch (Error e) { synchronized (SequentialExecutor.this.queue) { SequentialExecutor.this.workerRunningState = WorkerRunningState.IDLE; throw e; } } } /* JADX WARN: Code restructure failed: missing block: B:10:0x0054, code lost: r1 = r1 | java.lang.Thread.interrupted(); r2 = null; */ /* JADX WARN: Code restructure failed: missing block: B:12:0x0056, code lost: r8.task.run(); */ /* JADX WARN: Code restructure failed: missing block: B:16:0x0060, code lost: r0 = move-exception; */ /* JADX WARN: Code restructure failed: missing block: B:17:0x0080, code lost: r8.task = null; */ /* JADX WARN: Code restructure failed: missing block: B:18:0x0082, code lost: throw r0; */ /* JADX WARN: Code restructure failed: missing block: B:20:0x0062, code lost: r3 = move-exception; */ /* JADX WARN: Code restructure failed: missing block: B:21:0x0063, 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:28:0x004e, code lost: return; */ /* JADX WARN: Code restructure failed: missing block: B:29:?, code lost: return; */ /* Code decompiled incorrectly, please refer to instructions dump. To view partially-correct add '--show-bad-code' argument */ public final 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 -> L5e java.util.Deque r2 = com.google.firebase.concurrent.SequentialExecutor.access$100(r2) // Catch: java.lang.Throwable -> L5e monitor-enter(r2) // Catch: java.lang.Throwable -> L5e 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 L1f java.lang.Thread r0 = java.lang.Thread.currentThread() r0.interrupt() L1f: return L20: r0 = move-exception goto L83 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 L4f com.google.firebase.concurrent.SequentialExecutor r0 = com.google.firebase.concurrent.SequentialExecutor.this // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor$WorkerRunningState r3 = com.google.firebase.concurrent.SequentialExecutor.WorkerRunningState.IDLE // Catch: java.lang.Throwable -> L20 com.google.firebase.concurrent.SequentialExecutor.access$202(r0, r3) // Catch: java.lang.Throwable -> L20 monitor-exit(r2) // Catch: java.lang.Throwable -> L20 if (r1 == 0) goto L4e java.lang.Thread r0 = java.lang.Thread.currentThread() r0.interrupt() L4e: return L4f: monitor-exit(r2) // Catch: java.lang.Throwable -> L20 boolean r2 = java.lang.Thread.interrupted() // Catch: java.lang.Throwable -> L5e r1 = r1 | r2 r2 = 0 java.lang.Runnable r3 = r8.task // Catch: java.lang.Throwable -> L60 java.lang.RuntimeException -> L62 r3.run() // Catch: java.lang.Throwable -> L60 java.lang.RuntimeException -> L62 L5b: r8.task = r2 // Catch: java.lang.Throwable -> L5e goto L2 L5e: r0 = move-exception goto L85 L60: r0 = move-exception goto L80 L62: r3 = move-exception java.util.logging.Logger r4 = com.google.firebase.concurrent.SequentialExecutor.access$400() // Catch: java.lang.Throwable -> L60 java.util.logging.Level r5 = java.util.logging.Level.SEVERE // Catch: java.lang.Throwable -> L60 java.lang.StringBuilder r6 = new java.lang.StringBuilder // Catch: java.lang.Throwable -> L60 r6.() // Catch: java.lang.Throwable -> L60 java.lang.String r7 = "Exception while executing runnable " r6.append(r7) // Catch: java.lang.Throwable -> L60 java.lang.Runnable r7 = r8.task // Catch: java.lang.Throwable -> L60 r6.append(r7) // Catch: java.lang.Throwable -> L60 java.lang.String r6 = r6.toString() // Catch: java.lang.Throwable -> L60 r4.log(r5, r6, r3) // Catch: java.lang.Throwable -> L60 goto L5b L80: r8.task = r2 // Catch: java.lang.Throwable -> L5e throw r0 // Catch: java.lang.Throwable -> L5e L83: monitor-exit(r2) // Catch: java.lang.Throwable -> L20 throw r0 // Catch: java.lang.Throwable -> L5e L85: if (r1 == 0) goto L8e java.lang.Thread r1 = java.lang.Thread.currentThread() r1.interrupt() L8e: throw r0 */ throw new UnsupportedOperationException("Method not decompiled: com.google.firebase.concurrent.SequentialExecutor.QueueWorker.workOnQueue():void"); } public String toString() { Runnable runnable = this.task; if (runnable != null) { return "SequentialExecutorWorker{running=" + runnable + "}"; } return "SequentialExecutorWorker{state=" + SequentialExecutor.this.workerRunningState + "}"; } } public String toString() { return "SequentialExecutor@" + System.identityHashCode(this) + "{" + this.executor + "}"; } }