Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 13a82d95 authored by Jean Chalard's avatar Jean Chalard Committed by Kurt Partridge
Browse files

[Lazy2] Pass a runnable to abort

Change-Id: I721afbf426099753aa876a55323eb806b08c24d6
parent 7423005b
Loading
Loading
Loading
Loading
+11 −4
Original line number Diff line number Diff line
@@ -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);
            }
        }
    }