discord-jadx/app/src/main/java/j0/l/c/d.java

65 lines
2.7 KiB
Java

package j0.l.c;
import java.util.concurrent.Executors;
import java.util.concurrent.ScheduledExecutorService;
import java.util.concurrent.ScheduledThreadPoolExecutor;
import java.util.concurrent.atomic.AtomicReference;
/* compiled from: GenericScheduledExecutorService */
public final class d implements k {
public static final ScheduledExecutorService[] a = new ScheduledExecutorService[0];
public static final ScheduledExecutorService b;
/* renamed from: c reason: collision with root package name */
public static final d f2858c = new d();
public static int d;
public final AtomicReference<ScheduledExecutorService[]> e = new AtomicReference<>(a);
static {
ScheduledExecutorService newScheduledThreadPool = Executors.newScheduledThreadPool(0);
b = newScheduledThreadPool;
newScheduledThreadPool.shutdown();
}
public d() {
int availableProcessors = Runtime.getRuntime().availableProcessors();
availableProcessors = availableProcessors > 4 ? availableProcessors / 2 : availableProcessors;
availableProcessors = availableProcessors > 8 ? 8 : availableProcessors;
ScheduledExecutorService[] scheduledExecutorServiceArr = new ScheduledExecutorService[availableProcessors];
int i = 0;
for (int i2 = 0; i2 < availableProcessors; i2++) {
scheduledExecutorServiceArr[i2] = Executors.newScheduledThreadPool(1, e.i);
}
if (this.e.compareAndSet(a, scheduledExecutorServiceArr)) {
while (i < availableProcessors) {
ScheduledExecutorService scheduledExecutorService = scheduledExecutorServiceArr[i];
if (!g.g(scheduledExecutorService) && (scheduledExecutorService instanceof ScheduledThreadPoolExecutor)) {
g.e((ScheduledThreadPoolExecutor) scheduledExecutorService);
}
i++;
}
return;
}
while (i < availableProcessors) {
scheduledExecutorServiceArr[i].shutdownNow();
i++;
}
}
@Override // j0.l.c.k
public void shutdown() {
ScheduledExecutorService[] scheduledExecutorServiceArr;
ScheduledExecutorService[] scheduledExecutorServiceArr2;
do {
scheduledExecutorServiceArr = this.e.get();
scheduledExecutorServiceArr2 = a;
if (scheduledExecutorServiceArr == scheduledExecutorServiceArr2) {
return;
}
} while (!this.e.compareAndSet(scheduledExecutorServiceArr, scheduledExecutorServiceArr2));
for (ScheduledExecutorService scheduledExecutorService : scheduledExecutorServiceArr) {
g.k.remove(scheduledExecutorService);
scheduledExecutorService.shutdownNow();
}
}
}