From ddf9718ead9d27088f2f43c14a75eb567ec1f63c Mon Sep 17 00:00:00 2001 From: Terry Wang Date: Wed, 14 Apr 2021 13:19:45 -0700 Subject: Change AppSearchManagerService's thread pool to use LinkedBlockingQueue. If the service reaches the max pool size which is the number of available processor, we should use LinkedBlockingQueue instead of SynchronousQueue to queue the requests. Bug: 185294190 Test: presubmit Change-Id: I3a9a2f8a149f44fac7ddc01d61a6d1827a8d55bf --- .../java/com/android/server/appsearch/AppSearchManagerService.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java index 509877e21862..21e12e7ecc89 100644 --- a/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java +++ b/apex/appsearch/service/java/com/android/server/appsearch/AppSearchManagerService.java @@ -75,7 +75,7 @@ import java.util.Map; import java.util.Objects; import java.util.Set; import java.util.concurrent.Executor; -import java.util.concurrent.SynchronousQueue; +import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -94,7 +94,7 @@ public class AppSearchManagerService extends SystemService { // mutate requests will need to gain write lock and query requests need to gain read lock. private static final Executor EXECUTOR = new ThreadPoolExecutor(/*corePoolSize=*/1, Runtime.getRuntime().availableProcessors(), /*keepAliveTime*/ 60L, TimeUnit.SECONDS, - new SynchronousQueue()); + new LinkedBlockingQueue<>()); // Cache of unlocked user ids so we don't have to query UserManager service each time. The // "locked" suffix refers to the fact that access to the field should be locked; unrelated to -- cgit v1.2.3-59-g8ed1b