From c157be081ebe3b8aba360330fcdaa8b7eeb67024 Mon Sep 17 00:00:00 2001 From: Andreas Gampe Date: Tue, 27 Mar 2018 15:04:19 -0700 Subject: [PATCH] BgDexopt: Reschedule job on timeout When the background dexopt job times out, tell the scheduler to reschedule it, as we have more work to do. Bug: 76425903 Test: m Test: manual Change-Id: Ibbdb979bceb1ff0a25f8aed2b3cc26a7f30057e2 --- .../com/android/server/pm/BackgroundDexOptService.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/services/core/java/com/android/server/pm/BackgroundDexOptService.java b/services/core/java/com/android/server/pm/BackgroundDexOptService.java index 3814ef348c87e..46f39f2b0b3ba 100644 --- a/services/core/java/com/android/server/pm/BackgroundDexOptService.java +++ b/services/core/java/com/android/server/pm/BackgroundDexOptService.java @@ -463,10 +463,17 @@ public class BackgroundDexOptService extends JobService { if (params.getJobId() == JOB_POST_BOOT_UPDATE) { mAbortPostBootUpdate.set(true); + + // Do not reschedule. + // TODO: We should reschedule if we didn't process all apps, yet. + return false; } else { mAbortIdleOptimization.set(true); + + // Reschedule the run. + // TODO: Should this be dependent on the stop reason? + return true; } - return false; } private void notifyPinService(ArraySet updatedPackages) {