discord-jadx/app/src/main/java/androidx/room/TransactionExecutor.java

49 lines
1.4 KiB
Java

package androidx.room;
import androidx.annotation.NonNull;
import java.util.ArrayDeque;
import java.util.concurrent.Executor;
public class TransactionExecutor implements Executor {
private Runnable mActive;
private final Executor mExecutor;
private final ArrayDeque<Runnable> mTasks = new ArrayDeque<>();
/* renamed from: androidx.room.TransactionExecutor$1 reason: invalid class name */
public class AnonymousClass1 implements Runnable {
public final /* synthetic */ Runnable val$command;
public AnonymousClass1(Runnable runnable) {
this.val$command = runnable;
}
@Override // java.lang.Runnable
public void run() {
try {
this.val$command.run();
} finally {
TransactionExecutor.this.scheduleNext();
}
}
}
public TransactionExecutor(@NonNull Executor executor) {
this.mExecutor = executor;
}
@Override // java.util.concurrent.Executor
public synchronized void execute(Runnable runnable) {
this.mTasks.offer(new AnonymousClass1(runnable));
if (this.mActive == null) {
scheduleNext();
}
}
public synchronized void scheduleNext() {
Runnable poll = this.mTasks.poll();
this.mActive = poll;
if (poll != null) {
this.mExecutor.execute(poll);
}
}
}