summaryrefslogtreecommitdiff
path: root/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
diff options
context:
space:
mode:
authorEric Erfanian <erfanian@google.com>2017-05-15 14:05:33 -0700
committerEric Erfanian <erfanian@google.com>2017-05-15 14:48:12 -0700
commitc857f90590e7d7fcffa89511982eb33afd34805f (patch)
tree9910fb95c6fdb10b06ee8be02a3374d2882005b9 /java/com/android/voicemail/impl/scheduling/TaskExecutor.java
parent738bb09adee2b56c99063a0264f8f76de393143b (diff)
Update Dialer to v10 RC32
This release was created following the instructions at: go/dialer-aosp-release Subsequent dialer releases will follow as O bugs are fixed, until we reach our final RC. Version: 10 Candidate: RC32 Branch: dialer-android_release_branch/153304843.1 dialer-android_20170416.00/dialer-android_20170416.00_RC32 This release contains the following bug fixes since RC17: Bug: 33176679 33272455 3646510 36773894 37297649 37413780 37513689 37640315 37680595 37698062 37873639 37901752 37919295 37953423 38062852 38069600 38137349 38173549 38180252 38191514 Test: make, on device Change-Id: I4e4bb630082758e418ff24892b7db3142c6eb09a
Diffstat (limited to 'java/com/android/voicemail/impl/scheduling/TaskExecutor.java')
-rw-r--r--java/com/android/voicemail/impl/scheduling/TaskExecutor.java9
1 files changed, 8 insertions, 1 deletions
diff --git a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
index 84dc1db4a..e3b718e50 100644
--- a/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
+++ b/java/com/android/voicemail/impl/scheduling/TaskExecutor.java
@@ -193,13 +193,13 @@ final class TaskExecutor {
/** Should attempt to run the next task when a task has finished or been added. */
private boolean taskAutoRunDisabledForTesting = false;
+ /** Handles execution of the background task in teh worker thread. */
@VisibleForTesting
final class WorkerThreadHandler extends Handler {
public WorkerThreadHandler(Looper looper) {
super(looper);
}
-
@Override
@WorkerThread
public void handleMessage(Message msg) {
@@ -218,6 +218,7 @@ final class TaskExecutor {
}
}
+ /** Handles completion of the background task in the main thread. */
@VisibleForTesting
final class MainThreadHandler extends Handler {
@@ -233,6 +234,11 @@ final class TaskExecutor {
getTasks().remove(task);
task.onCompleted();
isWorkerThreadBusy = false;
+ if (!isJobRunning() || isTerminating()) {
+ // TaskExecutor was terminated when the task is running in background, don't need to run the
+ // next task or terminate again
+ return;
+ }
maybeRunNextTask();
}
}
@@ -290,6 +296,7 @@ final class TaskExecutor {
@MainThread
private void maybeRunNextTask() {
Assert.isMainThread();
+
if (isWorkerThreadBusy) {
return;
}