diff options
author | 2013-02-14 14:14:48 -0800 | |
---|---|---|
committer | 2013-03-12 18:56:57 -0700 | |
commit | 13a82d95306d9d5662fc11cfa5269cd86164bc3a (patch) | |
tree | c06ea2f9f6db0b78719d026747c51fa999120692 /java/src/com/android/inputmethod/research/ResearchLog.java | |
parent | 7423005b96b3afc3a6ff55ae40d143920d5a6221 (diff) | |
download | latinime-13a82d95306d9d5662fc11cfa5269cd86164bc3a.tar.gz latinime-13a82d95306d9d5662fc11cfa5269cd86164bc3a.tar.xz latinime-13a82d95306d9d5662fc11cfa5269cd86164bc3a.zip |
[Lazy2] Pass a runnable to abort
Change-Id: I721afbf426099753aa876a55323eb806b08c24d6
Diffstat (limited to 'java/src/com/android/inputmethod/research/ResearchLog.java')
-rw-r--r-- | java/src/com/android/inputmethod/research/ResearchLog.java | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/java/src/com/android/inputmethod/research/ResearchLog.java b/java/src/com/android/inputmethod/research/ResearchLog.java index 6335b195f..f7c5fd50e 100644 --- a/java/src/com/android/inputmethod/research/ResearchLog.java +++ b/java/src/com/android/inputmethod/research/ResearchLog.java @@ -98,6 +98,8 @@ public class ResearchLog { * output. * * See class comment for details about {@code JsonWriter} construction. + * + * @param onClosed run after the close() operation has completed asynchronously */ private synchronized void close(final Runnable onClosed) { mExecutor.submit(new Callable<Object>() { @@ -144,8 +146,10 @@ public class ResearchLog { /** * Waits for publication requests to finish, closes the JsonWriter, but then deletes the backing * output file. + * + * @param onAbort run after the abort() operation has completed asynchronously */ - private synchronized void abort() { + private synchronized void abort(final Runnable onAbort) { mExecutor.submit(new Callable<Object>() { @Override public Object call() throws Exception { @@ -159,6 +163,9 @@ public class ResearchLog { if (mFile != null) { mFile.delete(); } + if (onAbort != null) { + onAbort.run(); + } } return null; } @@ -173,7 +180,7 @@ public class ResearchLog { * @param timeout time to wait for close in milliseconds */ public void blockingAbort(final long timeout) { - abort(); + abort(null); awaitTermination(timeout, TimeUnit.MILLISECONDS); } @@ -231,10 +238,10 @@ public class ResearchLog { return null; } }); - } catch (RejectedExecutionException e) { + } catch (final RejectedExecutionException e) { // TODO: Add code to record loss of data, and report. if (DEBUG) { - Log.d(TAG, "ResearchLog.publish() rejecting scheduled execution"); + Log.d(TAG, "ResearchLog.publish() rejecting scheduled execution", e); } } } |