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

Commit 1871c2ce authored by Automerger Merge Worker's avatar Automerger Merge Worker Committed by Android (Google) Code Review
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
parents 2add9f9b 0c1d3621
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;