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

Commit 0c1d3621 authored by Mark Fasheh's avatar Mark Fasheh Committed by Automerger Merge Worker
Browse files

Merge "Re-evaluate frozen state in CAO.onCleanupApplicationRecordLocked" into...

Merge "Re-evaluate frozen state in CAO.onCleanupApplicationRecordLocked" into udc-dev am: 84647eb9 am: baa4f49e

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/23667470



Change-Id: If17abd33937d0ed8f3b5891717b7d0ced4f18b3c
Signed-off-by: default avatarAutomerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
parents 9d611a34 baa4f49e
Loading
Loading
Loading
Loading
+8 −4
Original line number Diff line number Diff line
@@ -1525,10 +1525,14 @@ public final class CachedAppOptimizer {
                opt.setPendingFreeze(false);
            }

            UidRecord uidRec = app.getUidRecord();
            if (uidRec != null && uidRec.isFrozen()) {
                uidRec.setFrozen(false);
                postUidFrozenMessage(uidRec.getUid(), false);
            final UidRecord uidRec = app.getUidRecord();
            if (uidRec != null) {
                final boolean isFrozen = uidRec.getNumOfProcs() > 1
                        && uidRec.areAllProcessesFrozen(app);
                if (isFrozen != uidRec.isFrozen()) {
                    uidRec.setFrozen(isFrozen);
                    postUidFrozenMessage(uidRec.getUid(), isFrozen);
                }
            }

            mFrozenProcesses.delete(app.getPid());
+13 −2
Original line number Diff line number Diff line
@@ -345,21 +345,32 @@ public final class UidRecord {
    }

    /**
     * Check whether all processes in the Uid are frozen.
     *
     * @param excluding Skip this process record during the check.
     * @return true if all processes in the Uid are frozen, false otherwise.
     */
    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public boolean areAllProcessesFrozen() {
    public boolean areAllProcessesFrozen(ProcessRecord excluding) {
        for (int i = mProcRecords.size() - 1; i >= 0; i--) {
            final ProcessRecord app = mProcRecords.valueAt(i);
            final ProcessCachedOptimizerRecord opt = app.mOptRecord;

            if (!opt.isFrozen()) {
            if (excluding != app && !opt.isFrozen()) {
                return false;
            }
        }
        return true;
    }

    /**
     * @return true if all processes in the Uid are frozen, false otherwise.
     */
    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public boolean areAllProcessesFrozen() {
        return areAllProcessesFrozen(null);
    }

    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public void setFrozen(boolean frozen) {
        mUidIsFrozen = frozen;