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

Commit 09676267 authored by Automerger Merge Worker's avatar Automerger Merge Worker
Browse files

Merge "Merge "Re-evaluate frozen state in...

Merge "Merge "Re-evaluate frozen state in CAO.onCleanupApplicationRecordLocked" into udc-dev am: 84647eb9 am: baa4f49e" into udc-d1-dev-plus-aosp am: 1871c2ce

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



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


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


            mFrozenProcesses.delete(app.getPid());
            mFrozenProcesses.delete(app.getPid());
+13 −2
Original line number Original line 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.
     * @return true if all processes in the Uid are frozen, false otherwise.
     */
     */
    @GuardedBy(anyOf = {"mService", "mProcLock"})
    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public boolean areAllProcessesFrozen() {
    public boolean areAllProcessesFrozen(ProcessRecord excluding) {
        for (int i = mProcRecords.size() - 1; i >= 0; i--) {
        for (int i = mProcRecords.size() - 1; i >= 0; i--) {
            final ProcessRecord app = mProcRecords.valueAt(i);
            final ProcessRecord app = mProcRecords.valueAt(i);
            final ProcessCachedOptimizerRecord opt = app.mOptRecord;
            final ProcessCachedOptimizerRecord opt = app.mOptRecord;


            if (!opt.isFrozen()) {
            if (excluding != app && !opt.isFrozen()) {
                return false;
                return false;
            }
            }
        }
        }
        return true;
        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"})
    @GuardedBy(anyOf = {"mService", "mProcLock"})
    public void setFrozen(boolean frozen) {
    public void setFrozen(boolean frozen) {
        mUidIsFrozen = frozen;
        mUidIsFrozen = frozen;