Merge "Re-evaluate frozen state in CAO.onCleanupApplicationRecordLocked" into udc-dev
This commit is contained in:
@@ -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());
|
||||
|
||||
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user