diff --git a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java index dcc4568da..3eafcb245 100644 --- a/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java +++ b/java/src/com/android/inputmethod/latin/ExpandableBinaryDictionary.java @@ -40,7 +40,6 @@ import java.util.Map; import java.util.concurrent.CountDownLatch; import java.util.concurrent.TimeUnit; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.concurrent.atomic.AtomicReference; /** * Abstract base class for an expandable dictionary that can be created and updated dynamically @@ -101,9 +100,6 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { /* A extension for a binary dictionary file. */ protected static final String DICT_FILE_EXTENSION = ".dict"; - private final AtomicReference mUnfinishedFlushingTask = - new AtomicReference(); - /** * Abstract method for loading initial contents of a given dictionary. */ @@ -561,14 +557,12 @@ abstract public class ExpandableBinaryDictionary extends Dictionary { * Flush binary dictionary to dictionary file. */ public void asyncFlushBinaryDictionary() { - final Runnable newTask = new Runnable() { + ExecutorUtils.getExecutor(mDictName).execute(new Runnable() { @Override public void run() { flushDictionaryLocked(); } - }; - final Runnable oldTask = mUnfinishedFlushingTask.getAndSet(newTask); - ExecutorUtils.getExecutor(mDictName).replaceAndExecute(oldTask, newTask); + }); } // TODO: Implement BinaryDictionary.isInDictionary(). diff --git a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java index b10d08af3..a23b3ac79 100644 --- a/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java +++ b/java/src/com/android/inputmethod/latin/utils/PrioritizedSerialExecutor.java @@ -46,16 +46,6 @@ public class PrioritizedSerialExecutor { 0 /* keepAliveTime */, TimeUnit.MILLISECONDS, new ArrayBlockingQueue(1)); } - /** - * Clears all queued tasks. - */ - public void clearAllTasks() { - synchronized(mLock) { - mTasks.clear(); - mPrioritizedTasks.clear(); - } - } - /** * Enqueues the given task into the task queue. * @param r the enqueued task @@ -120,33 +110,10 @@ public class PrioritizedSerialExecutor { } } - public void remove(final Runnable r) { - synchronized(mLock) { - mTasks.remove(r); - mPrioritizedTasks.remove(r); - } - } - - public void replaceAndExecute(final Runnable oldTask, final Runnable newTask) { - synchronized(mLock) { - if (oldTask != null) remove(oldTask); - execute(newTask); - } - } - public void shutdown() { synchronized(mLock) { mIsShutdown = true; mThreadPoolExecutor.shutdown(); } } - - public boolean isTerminated() { - synchronized(mLock) { - if (!mIsShutdown) { - return false; - } - return mPrioritizedTasks.isEmpty() && mTasks.isEmpty() && mActive == null; - } - } }