diff options
author | 2013-10-01 11:41:39 +0900 | |
---|---|---|
committer | 2013-10-01 12:04:06 +0900 | |
commit | 03cb8f751a7f35e9159c724a2d25528b86287b57 (patch) | |
tree | 062a2bd64fe6e55b844445561f4820302ff4134e /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | |
parent | 2c1faeda2cf672175daf3715beb1778edd850282 (diff) | |
download | latinime-03cb8f751a7f35e9159c724a2d25528b86287b57.tar.gz latinime-03cb8f751a7f35e9159c724a2d25528b86287b57.tar.xz latinime-03cb8f751a7f35e9159c724a2d25528b86287b57.zip |
Quit blocking getSuggestion during GC.
Bug: 10831272
Change-Id: I995c619dc18a9120a47f547d31045cb73a9353ec
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java')
-rw-r--r-- | java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index 2d1ca51e2..306c1a253 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -273,6 +273,24 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { lastModifiedTime); } + private void runGCIfRequired() { + if (!ENABLE_BINARY_DICTIONARY_DYNAMIC_UPDATE) return; + if (mBinaryDictionary.needsToRunGC(true /* mindsBlockByGC */)) { + if (setIsRegeneratingIfNotRegenerating()) { + getExecutor(mFilename).execute(new Runnable() { + @Override + public void run() { + try { + mBinaryDictionary.flushWithGC(); + } finally { + mFilenameDictionaryUpdateController.mIsRegenerating.set(false); + } + } + }); + } + } + } + /** * Dynamically adds a word unigram to the dictionary. May overwrite an existing entry. */ @@ -282,7 +300,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { Log.w(TAG, "addWordDynamically is called for non-updatable dictionary: " + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { @@ -306,7 +324,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { @@ -330,7 +348,7 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { + mFilename); return; } - + runGCIfRequired(); getExecutor(mFilename).execute(new Runnable() { @Override public void run() { |