From 94f88b4881d6738aedfd8bacf4833ecad730879b Mon Sep 17 00:00:00 2001 From: Keisuke Kuroyanagi Date: Thu, 29 May 2014 17:36:32 +0900 Subject: Remove PrioritizedSerialExecutor. Bug: 15320560 Change-Id: Icb88a96ebd685da1d2cba7b07889a2751c603a2e --- .../inputmethod/latin/utils/ExecutorUtils.java | 31 +++++++++++++++++----- 1 file changed, 25 insertions(+), 6 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java') diff --git a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java index c08697c4b..61da1b789 100644 --- a/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java +++ b/java/src/com/android/inputmethod/latin/utils/ExecutorUtils.java @@ -19,23 +19,42 @@ package com.android.inputmethod.latin.utils; import com.android.inputmethod.annotations.UsedForTesting; import java.util.concurrent.ConcurrentHashMap; +import java.util.concurrent.ExecutorService; +import java.util.concurrent.Executors; +import java.util.concurrent.ThreadFactory; /** * Utilities to manage executors. */ public class ExecutorUtils { - private static final ConcurrentHashMap sExecutorMap = + private static final ConcurrentHashMap sExecutorMap = new ConcurrentHashMap<>(); + private static class ThreadFactoryWithId implements ThreadFactory { + private final String mId; + + public ThreadFactoryWithId(final String id) { + mId = id; + } + + @Override + public Thread newThread(final Runnable r) { + return new Thread(r, "Executor - " + mId); + } + } + /** * Gets the executor for the given id. */ - public static PrioritizedSerialExecutor getExecutor(final String id) { - PrioritizedSerialExecutor executor = sExecutorMap.get(id); + public static ExecutorService getExecutor(final String id) { + ExecutorService executor = sExecutorMap.get(id); if (executor == null) { synchronized(sExecutorMap) { - executor = new PrioritizedSerialExecutor(id); - sExecutorMap.put(id, executor); + executor = sExecutorMap.get(id); + if (executor == null) { + executor = Executors.newSingleThreadExecutor(new ThreadFactoryWithId(id)); + sExecutorMap.put(id, executor); + } } } return executor; @@ -47,7 +66,7 @@ public class ExecutorUtils { @UsedForTesting public static void shutdownAllExecutors() { synchronized(sExecutorMap) { - for (final PrioritizedSerialExecutor executor : sExecutorMap.values()) { + for (final ExecutorService executor : sExecutorMap.values()) { executor.execute(new Runnable() { @Override public void run() { -- cgit v1.2.3-83-g751a