From 03ad5073d2c9d3c717bd251b37710fa778d2c046 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Sun, 24 Oct 2021 14:19:11 -0400 Subject: [PATCH] Adjust SignalExecutors.BOUNDED config to actually use extra threads. --- .../dependencies/ApplicationDependencyProvider.java | 2 +- .../org/signal/core/util/concurrent/SignalExecutors.java | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java index de4f013b3d..3c60cd671a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java @@ -121,7 +121,7 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr signalWebSocket, Optional.of(new SecurityEventListener(context)), provideClientZkOperations().getProfileOperations(), - SignalExecutors.newCachedBoundedExecutor("signal-messages", 1, 16), + SignalExecutors.newCachedBoundedExecutor("signal-messages", 1, 16, 30), ByteUnit.KILOBYTES.toBytes(512), FeatureFlags.okHttpAutomaticRetry()); } diff --git a/core-util/src/main/java/org/signal/core/util/concurrent/SignalExecutors.java b/core-util/src/main/java/org/signal/core/util/concurrent/SignalExecutors.java index 01f9bef0c4..f267128306 100644 --- a/core-util/src/main/java/org/signal/core/util/concurrent/SignalExecutors.java +++ b/core-util/src/main/java/org/signal/core/util/concurrent/SignalExecutors.java @@ -17,9 +17,9 @@ import java.util.concurrent.atomic.AtomicInteger; public final class SignalExecutors { public static final ExecutorService UNBOUNDED = Executors.newCachedThreadPool(new NumberedThreadFactory("signal-unbounded")); - public static final ExecutorService BOUNDED = new ThreadPoolExecutor(4, 12, 5, TimeUnit.SECONDS, new LinkedBlockingQueue<>(), new NumberedThreadFactory("signal-bounded")); + public static final ExecutorService BOUNDED = newCachedBoundedExecutor("signal-bounded", 4, 12, 5); public static final ExecutorService SERIAL = Executors.newSingleThreadExecutor(new NumberedThreadFactory("signal-serial")); - public static final ExecutorService BOUNDED_IO = newCachedBoundedExecutor("signal-io-bounded", 1, 32); + public static final ExecutorService BOUNDED_IO = newCachedBoundedExecutor("signal-io-bounded", 1, 32, 30); private SignalExecutors() {} @@ -40,10 +40,10 @@ public final class SignalExecutors { * So we make a queue that will always return false if it's non-empty to ensure new threads get * created. Then, if a task gets rejected, we simply add it to the queue. */ - public static ExecutorService newCachedBoundedExecutor(final String name, int minThreads, int maxThreads) { + public static ExecutorService newCachedBoundedExecutor(final String name, int minThreads, int maxThreads, int timeoutSeconds) { ThreadPoolExecutor threadPool = new ThreadPoolExecutor(minThreads, maxThreads, - 30, + timeoutSeconds, TimeUnit.SECONDS, new LinkedBlockingQueue() { @Override