Files
adif-api-reverse-engineering/apk_decompiled/sources/com/google/firebase/concurrent/PausableExecutorImpl.java

51 lines
1.4 KiB
Java

package com.google.firebase.concurrent;
import java.util.concurrent.Executor;
import java.util.concurrent.LinkedBlockingQueue;
/* JADX INFO: Access modifiers changed from: package-private */
/* loaded from: classes3.dex */
public final class PausableExecutorImpl implements PausableExecutor {
private final Executor delegate;
private volatile boolean paused;
final LinkedBlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();
public PausableExecutorImpl(boolean z3, Executor executor) {
this.paused = z3;
this.delegate = executor;
}
private void maybeEnqueueNext() {
if (this.paused) {
return;
}
Runnable poll = this.queue.poll();
while (poll != null) {
this.delegate.execute(poll);
poll = !this.paused ? this.queue.poll() : null;
}
}
@Override // java.util.concurrent.Executor
public void execute(Runnable runnable) {
this.queue.offer(runnable);
maybeEnqueueNext();
}
@Override // com.google.firebase.concurrent.PausableExecutor
public boolean isPaused() {
return this.paused;
}
@Override // com.google.firebase.concurrent.PausableExecutor
public void pause() {
this.paused = true;
}
@Override // com.google.firebase.concurrent.PausableExecutor
public void resume() {
this.paused = false;
maybeEnqueueNext();
}
}