diff options
author | 2014-09-22 02:49:04 +0000 | |
---|---|---|
committer | 2014-09-22 02:49:04 +0000 | |
commit | 825747348b2fdc33d9593afd5ff29dbe9587524d (patch) | |
tree | 2f9b83013098c288c026cfc8275b59585320faf1 /java | |
parent | 8c748d0c2617f8aa6c46dc4b7896cdc2ce611640 (diff) | |
parent | c724864c612d899b7942f007c58a2727ce31b7ad (diff) | |
download | latinime-825747348b2fdc33d9593afd5ff29dbe9587524d.tar.gz latinime-825747348b2fdc33d9593afd5ff29dbe9587524d.tar.xz latinime-825747348b2fdc33d9593afd5ff29dbe9587524d.zip |
Merge "Create DictionaryStats in executor."
Diffstat (limited to '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 |