Initial import of ADIF API reverse-engineering toolkit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
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();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user