aboutsummaryrefslogtreecommitdiffstats
path: root/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
diff options
context:
space:
mode:
authorKeisuke Kuroyanagi <ksk@google.com>2013-10-01 07:08:10 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-01 07:08:11 +0000
commit126d758c1e8db969ad1c9e5d801f3075e2061cc1 (patch)
treeb7b4ae32021d8b4ed79895b941cebe263c283b6b /java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java
parent74730a4600620b5ccfcf3d16666ad0239aec18b6 (diff)
parent03cb8f751a7f35e9159c724a2d25528b86287b57 (diff)
downloadlatinime-126d758c1e8db969ad1c9e5d801f3075e2061cc1.tar.gz
latinime-126d758c1e8db969ad1c9e5d801f3075e2061cc1.tar.xz
latinime-126d758c1e8db969ad1c9e5d801f3075e2061cc1.zip
Merge "Quit blocking getSuggestion during GC."
Diffstat (limited to 'java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java')
-rw-r--r--java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java24
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() {