From 0b03f13cabec84d2d841fde47ce9fec0d531b6a1 Mon Sep 17 00:00:00 2001 From: Dan Zivkovic Date: Tue, 17 Feb 2015 15:12:05 -0800 Subject: Sanitize the usage of executors. There should be 1 executor each for static and dynamic language models. This prevents too many dynamic LM updates from running in parallel, competing for resources. Change-Id: I8ec439e0ea2d92fba275bc20a0b8c9193346a0c1 --- .../inputmethod/latin/ExpandableBinaryDictionary.java | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java') diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 8c780027b..064d79b3c 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -164,12 +164,11 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { } private void asyncExecuteTaskWithWriteLock(final Runnable task) { - asyncExecuteTaskWithLock(mLock.writeLock(), mDictName /* executorName */, task); + asyncExecuteTaskWithLock(mLock.writeLock(), task); } - private static void asyncExecuteTaskWithLock(final Lock lock, final String executorName, - final Runnable task) { - ExecutorUtils.getExecutor(executorName).execute(new Runnable() { + private static void asyncExecuteTaskWithLock(final Lock lock, final Runnable task) { + ExecutorUtils.getExecutorForDynamicLanguageModelUpdate().execute(new Runnable() { @Override public void run() { lock.lock(); @@ -663,7 +662,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { final String dictName = mDictName; final File dictFile = mDictFile; final AsyncResultHolder result = new AsyncResultHolder<>(); - asyncExecuteTaskWithLock(mLock.readLock(), dictName /* executorName */, new Runnable() { + asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() { @Override public void run() { final BinaryDictionary binaryDictionary = getBinaryDictionary(); @@ -714,7 +713,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { reloadDictionaryIfRequired(); final String tag = TAG; final String dictName = mDictName; - asyncExecuteTaskWithLock(mLock.readLock(), "dumpAllWordsForDebug", new Runnable() { + asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() { @Override public void run() { Log.d(tag, "Dump dictionary: " + dictName + " for " + mLocale); @@ -752,7 +751,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { public WordProperty[] getWordPropertiesForSyncing() { reloadDictionaryIfRequired(); final AsyncResultHolder result = new AsyncResultHolder<>(); - asyncExecuteTaskWithLock(mLock.readLock(), "sync-read", new Runnable() { + asyncExecuteTaskWithLock(mLock.readLock(), new Runnable() { @Override public void run() { final ArrayList wordPropertyList = new ArrayList<>(); -- cgit v1.2.3-83-g751a