diff options
author | 2014-09-22 10:25:51 +0900 | |
---|---|---|
committer | 2014-09-22 10:25:51 +0900 | |
commit | c724864c612d899b7942f007c58a2727ce31b7ad (patch) | |
tree | dff2fa1595b128c5ed56ac19459e3c641bb7dc3a /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | |
parent | f88ec161e9aeeac8a65f4343517d7c824f20fe49 (diff) | |
download | latinime-c724864c612d899b7942f007c58a2727ce31b7ad.tar.gz latinime-c724864c612d899b7942f007c58a2727ce31b7ad.tar.xz latinime-c724864c612d899b7942f007c58a2727ce31b7ad.zip |
Create DictionaryStats in executor.
Bug: 16553957
Change-Id: Ie4e9a6ee67f90ba0086af2075068e078efc7f189
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index ad967c133..53abd2ecc 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -27,6 +27,7 @@ import com.android.inputmethod.latin.makedict.UnsupportedFormatException; import com.android.inputmethod.latin.makedict.WordProperty; import com.android.inputmethod.latin.SuggestedWords.SuggestedWordInfo; import com.android.inputmethod.latin.settings.SettingsValuesForSuggestion; +import com.android.inputmethod.latin.utils.AsyncResultHolder; import com.android.inputmethod.latin.utils.CombinedFormatUtils; import com.android.inputmethod.latin.utils.DistracterFilter; import com.android.inputmethod.latin.utils.ExecutorUtils; @@ -645,13 +646,15 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { public DictionaryStats getDictionaryStats() { reloadDictionaryIfRequired(); - mLock.readLock().lock(); - try { - // TODO: Get stats form the dictionary. - return new DictionaryStats(mLocale, mDictName, mDictFile); - } finally { - mLock.readLock().unlock(); - } + final AsyncResultHolder<DictionaryStats> result = new AsyncResultHolder<>(); + asyncExecuteTaskWithLock(mLock.readLock(), mDictName /* executorName */, new Runnable() { + @Override + public void run() { + // TODO: Get stats from the dictionary. + result.set(new DictionaryStats(mLocale, mDictName, mDictFile)); + } + }); + return result.get(null /* defaultValue */, TIMEOUT_FOR_READ_OPS_IN_MILLISECONDS); } @UsedForTesting |