From 6e2959867250930f97a2a0cb08a14f241498f80a Mon Sep 17 00:00:00 2001 From: Jing Ji Date: Fri, 9 Apr 2021 12:41:37 -0700 Subject: [PATCH] Clear the pending app freezer task if it's killed. Bug: 184893012 Test: Manual - put app in cached state and kill it Change-Id: I0010c8a5aa738442de0d2dbef7affe791aa5fc80 --- .../com/android/server/am/ActivityManagerService.java | 3 +++ .../java/com/android/server/am/CachedAppOptimizer.java | 10 ++++++++++ 2 files changed, 13 insertions(+) diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java index 7dc39b34c88af..81e01db51921c 100644 --- a/services/core/java/com/android/server/am/ActivityManagerService.java +++ b/services/core/java/com/android/server/am/ActivityManagerService.java @@ -11492,6 +11492,9 @@ public class ActivityManagerService extends IActivityManager.Stub // and it's not isolated, as we'd need the signal to bookkeeping the dying process list. restart = app.onCleanupApplicationRecordLSP(mProcessStats, allowRestart, fromBinderDied || app.isolated /* unlinkDeath */); + + // Cancel pending frozen task if there is any. + mOomAdjuster.mCachedAppOptimizer.unscheduleFreezeAppLSP(app); } mAppProfiler.onCleanupApplicationRecordLocked(app); skipCurrentReceiverLocked(app); diff --git a/services/core/java/com/android/server/am/CachedAppOptimizer.java b/services/core/java/com/android/server/am/CachedAppOptimizer.java index e4cb15fe8d563..8dc9d03dedb76 100644 --- a/services/core/java/com/android/server/am/CachedAppOptimizer.java +++ b/services/core/java/com/android/server/am/CachedAppOptimizer.java @@ -974,6 +974,16 @@ public final class CachedAppOptimizer { } } + /** + * To be called when the given app is killed. + */ + @GuardedBy({"mAm", "mProcLock"}) + void unscheduleFreezeAppLSP(ProcessRecord app) { + if (mUseFreezer) { + mFreezeHandler.removeMessages(SET_FROZEN_PROCESS_MSG, app); + } + } + @VisibleForTesting static final class LastCompactionStats { private final long[] mRssAfterCompaction;