mirror of
https://github.com/Pinball3D/Rabbit-R1.git
synced 2024-12-28 01:52:26 -06:00
89 lines
4.1 KiB
Java
89 lines
4.1 KiB
Java
package androidx.lifecycle;
|
|
|
|
import java.util.ArrayDeque;
|
|
import java.util.Queue;
|
|
import kotlin.Metadata;
|
|
import kotlin.coroutines.CoroutineContext;
|
|
import kotlin.jvm.internal.Intrinsics;
|
|
import kotlinx.coroutines.Dispatchers;
|
|
import kotlinx.coroutines.MainCoroutineDispatcher;
|
|
|
|
/* compiled from: DispatchQueue.kt */
|
|
@Metadata(d1 = {"\u0000.\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000b\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0010\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0007\b\u0000\u0018\u00002\u00020\u0001B\u0005¢\u0006\u0002\u0010\u0002J\b\u0010\n\u001a\u00020\u0004H\u0007J\u0018\u0010\u000b\u001a\u00020\f2\u0006\u0010\r\u001a\u00020\u000e2\u0006\u0010\u000f\u001a\u00020\tH\u0007J\b\u0010\u0010\u001a\u00020\fH\u0007J\u0010\u0010\u0011\u001a\u00020\f2\u0006\u0010\u000f\u001a\u00020\tH\u0003J\b\u0010\u0012\u001a\u00020\fH\u0007J\b\u0010\u0013\u001a\u00020\fH\u0007J\b\u0010\u0014\u001a\u00020\fH\u0007R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0005\u001a\u00020\u0004X\u0082\u000e¢\u0006\u0002\n\u0000R\u000e\u0010\u0006\u001a\u00020\u0004X\u0082\u000e¢\u0006\u0002\n\u0000R\u0014\u0010\u0007\u001a\b\u0012\u0004\u0012\u00020\t0\bX\u0082\u0004¢\u0006\u0002\n\u0000¨\u0006\u0015"}, d2 = {"Landroidx/lifecycle/DispatchQueue;", "", "()V", "finished", "", "isDraining", "paused", "queue", "Ljava/util/Queue;", "Ljava/lang/Runnable;", "canRun", "dispatchAndEnqueue", "", "context", "Lkotlin/coroutines/CoroutineContext;", "runnable", "drainQueue", "enqueue", "finish", "pause", "resume", "lifecycle-common"}, k = 1, mv = {1, 8, 0}, xi = 48)
|
|
/* loaded from: classes2.dex */
|
|
public final class DispatchQueue {
|
|
private boolean finished;
|
|
private boolean isDraining;
|
|
private boolean paused = true;
|
|
private final Queue<Runnable> queue = new ArrayDeque();
|
|
|
|
public final boolean canRun() {
|
|
return this.finished || !this.paused;
|
|
}
|
|
|
|
public final void pause() {
|
|
this.paused = true;
|
|
}
|
|
|
|
public final void resume() {
|
|
if (this.paused) {
|
|
if (!(!this.finished)) {
|
|
throw new IllegalStateException("Cannot resume a finished dispatcher".toString());
|
|
}
|
|
this.paused = false;
|
|
drainQueue();
|
|
}
|
|
}
|
|
|
|
public final void finish() {
|
|
this.finished = true;
|
|
drainQueue();
|
|
}
|
|
|
|
public final void drainQueue() {
|
|
if (this.isDraining) {
|
|
return;
|
|
}
|
|
try {
|
|
this.isDraining = true;
|
|
while ((!this.queue.isEmpty()) && canRun()) {
|
|
Runnable poll = this.queue.poll();
|
|
if (poll != null) {
|
|
poll.run();
|
|
}
|
|
}
|
|
} finally {
|
|
this.isDraining = false;
|
|
}
|
|
}
|
|
|
|
public final void dispatchAndEnqueue(CoroutineContext context, final Runnable runnable) {
|
|
Intrinsics.checkNotNullParameter(context, "context");
|
|
Intrinsics.checkNotNullParameter(runnable, "runnable");
|
|
MainCoroutineDispatcher immediate = Dispatchers.getMain().getImmediate();
|
|
if (immediate.isDispatchNeeded(context) || canRun()) {
|
|
immediate.mo7257dispatch(context, new Runnable() { // from class: androidx.lifecycle.DispatchQueue$$ExternalSyntheticLambda0
|
|
@Override // java.lang.Runnable
|
|
public final void run() {
|
|
DispatchQueue.dispatchAndEnqueue$lambda$2$lambda$1(DispatchQueue.this, runnable);
|
|
}
|
|
});
|
|
} else {
|
|
enqueue(runnable);
|
|
}
|
|
}
|
|
|
|
/* JADX INFO: Access modifiers changed from: private */
|
|
public static final void dispatchAndEnqueue$lambda$2$lambda$1(DispatchQueue this$0, Runnable runnable) {
|
|
Intrinsics.checkNotNullParameter(this$0, "this$0");
|
|
Intrinsics.checkNotNullParameter(runnable, "$runnable");
|
|
this$0.enqueue(runnable);
|
|
}
|
|
|
|
private final void enqueue(Runnable runnable) {
|
|
if (!this.queue.offer(runnable)) {
|
|
throw new IllegalStateException("cannot enqueue any more runnables".toString());
|
|
}
|
|
drainQueue();
|
|
}
|
|
}
|