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

Commit 775770b2 authored by Li Li's avatar Li Li
Browse files

Freezer: fix delayed freezing operation

AMS will compute and apply OomAdj frequently, updating the value
again and again. That makes freezer fall into a loop, removing and
resetting delayed freezing messages. Fix it by dropping those
redundant messages.

Bug: 188189336
Bug: 181278288
Test: Verified apps are frozen 10 min after they become cached.
Change-Id: I83aac961b00db129e0d84f1f4f485012c8aa90d4
parent dcec9f1f
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -881,7 +881,10 @@ public final class CachedAppOptimizer {

    @GuardedBy({"mAm", "mProcLock"})
    void freezeAppAsyncLSP(ProcessRecord app) {
        mFreezeHandler.removeMessages(SET_FROZEN_PROCESS_MSG, app);
        if (mFreezeHandler.hasMessages(SET_FROZEN_PROCESS_MSG, app)) {
            // Skip redundant DO_FREEZE message
            return;
        }

        mFreezeHandler.sendMessageDelayed(
                mFreezeHandler.obtainMessage(