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

Commit 243d1a02 authored by Austin Borger's avatar Austin Borger Committed by Automerger Merge Worker
Browse files

Modify UidRecord.CHANGE_PROCSTATE such that it behaves like a bit mask. am: 177d5bb1

parents 960dc2b9 177d5bb1
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -779,6 +779,7 @@ message UidRecordProto {
        CHANGE_CACHED = 3;
        CHANGE_UNCACHED = 4;
        CHANGE_CAPABILITY = 5;
        CHANGE_PROCSTATE = 6;
    }
    repeated Change last_reported_changes = 8;
    optional int32 num_procs = 9;
+1 −1
Original line number Diff line number Diff line
@@ -15573,7 +15573,7 @@ public class ActivityManagerService extends IActivityManager.Stub
    @GuardedBy("this")
    final void doStopUidLocked(int uid, final UidRecord uidRec) {
        mServices.stopInBackgroundLocked(uid);
        enqueueUidChangeLocked(uidRec, uid, UidRecord.CHANGE_IDLE);
        enqueueUidChangeLocked(uidRec, uid, UidRecord.CHANGE_IDLE | UidRecord.CHANGE_PROCSTATE);
    }
    /**
+6 −3
Original line number Diff line number Diff line
@@ -1191,7 +1191,7 @@ public class OomAdjuster {
        }
        for (int i = activeUids.size() - 1; i >= 0; i--) {
            final UidRecord uidRec = activeUids.valueAt(i);
            int uidChange = UidRecord.CHANGE_PROCSTATE;
            int uidChange = 0;
            if (uidRec.getCurProcState() != PROCESS_STATE_NONEXISTENT
                    && (uidRec.getSetProcState() != uidRec.getCurProcState()
                    || uidRec.getSetCapability() != uidRec.getCurCapability()
@@ -1219,12 +1219,12 @@ public class OomAdjuster {
                        }
                    }
                    if (uidRec.isIdle() && !uidRec.isSetIdle()) {
                        uidChange = UidRecord.CHANGE_IDLE;
                        uidChange |= UidRecord.CHANGE_IDLE;
                        becameIdle.add(uidRec);
                    }
                } else {
                    if (uidRec.isIdle()) {
                        uidChange = UidRecord.CHANGE_ACTIVE;
                        uidChange |= UidRecord.CHANGE_ACTIVE;
                        EventLogTags.writeAmUidActive(uidRec.getUid());
                        uidRec.setIdle(false);
                    }
@@ -1241,6 +1241,9 @@ public class OomAdjuster {
                if (uidRec.getSetCapability() != uidRec.getCurCapability()) {
                    uidChange |= UidRecord.CHANGE_CAPABILITY;
                }
                if (uidRec.getSetProcState() != uidRec.getCurProcState()) {
                    uidChange |= UidRecord.CHANGE_PROCSTATE;
                }
                uidRec.setSetProcState(uidRec.getCurProcState());
                uidRec.setSetCapability(uidRec.getCurCapability());
                uidRec.setSetAllowListed(uidRec.isCurAllowListed());
+1 −1
Original line number Diff line number Diff line
@@ -3031,7 +3031,7 @@ public final class ProcessList {
                            Slog.i(TAG_UID_OBSERVERS, "No more processes in " + uidRecord);
                        }
                        mService.enqueueUidChangeLocked(uidRecord, -1,
                                UidRecord.CHANGE_GONE);
                                UidRecord.CHANGE_GONE | UidRecord.CHANGE_PROCSTATE);
                        EventLogTags.writeAmUidStopped(uid);
                        mActiveUids.remove(uid);
                        mService.mFgsStartTempAllowList.removeUid(record.info.uid);
+3 −0
Original line number Diff line number Diff line
@@ -154,6 +154,9 @@ public class UidObserverController {
        if ((pendingChange & UidRecord.CHANGE_CAPABILITY) != 0) {
            currentChange |= UidRecord.CHANGE_CAPABILITY;
        }
        if ((pendingChange & UidRecord.CHANGE_PROCSTATE) != 0) {
            currentChange |= UidRecord.CHANGE_PROCSTATE;
        }
        return currentChange;
    }

Loading