diff options
Diffstat (limited to 'services/appfunctions/java')
-rw-r--r-- | services/appfunctions/java/com/android/server/appfunctions/AppFunctionExecutors.java | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionExecutors.java b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionExecutors.java index 44ae1d1fbbbf..81e83b563945 100644 --- a/services/appfunctions/java/com/android/server/appfunctions/AppFunctionExecutors.java +++ b/services/appfunctions/java/com/android/server/appfunctions/AppFunctionExecutors.java @@ -16,7 +16,6 @@ package com.android.server.appfunctions; -import java.util.concurrent.Executor; import java.util.concurrent.LinkedBlockingQueue; import java.util.concurrent.ThreadPoolExecutor; import java.util.concurrent.TimeUnit; @@ -24,15 +23,21 @@ import java.util.concurrent.TimeUnit; /** Executors for App function operations. */ public final class AppFunctionExecutors { + static final int sConcurrency = Runtime.getRuntime().availableProcessors(); + /** Executor for operations that do not need to block. */ - public static final Executor THREAD_POOL_EXECUTOR = + public static final ThreadPoolExecutor THREAD_POOL_EXECUTOR = new ThreadPoolExecutor( - /* corePoolSize= */ Runtime.getRuntime().availableProcessors(), - /* maxConcurrency= */ Runtime.getRuntime().availableProcessors(), - /* keepAliveTime= */ 0L, + /* corePoolSize= */ sConcurrency, + /* maxConcurrency= */ sConcurrency, + /* keepAliveTime= */ 1L, /* unit= */ TimeUnit.SECONDS, /* workQueue= */ new LinkedBlockingQueue<>(), new NamedThreadFactory("AppFunctionExecutors")); + static { + THREAD_POOL_EXECUTOR.allowCoreThreadTimeOut(true); + } + private AppFunctionExecutors() {} } |