Files
rr3-apk/decompiled-community/sources/com/google/firebase/concurrent/SequentialExecutor.java
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

300 lines
15 KiB
Java

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.<init>() // 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.<init>() // 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 + "}";
}
}