Loading services/core/java/com/android/server/am/BroadcastQueueImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -2101,7 +2101,8 @@ class BroadcastQueueImpl extends BroadcastQueue { mService.mProcessStateController.noteBroadcastDeliveryStarted(queue.app, queue.getPreferredSchedulingGroupLocked()); if (queue.runningOomAdjusted) { queue.app.mState.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_RECEIVER); mService.mProcessStateController.forceProcessStateUpTo(queue.app, ActivityManager.PROCESS_STATE_RECEIVER); mService.enqueueOomAdjTargetLocked(queue.app); } } Loading services/core/java/com/android/server/am/ProcessRecord.java +2 −2 Original line number Diff line number Diff line Loading @@ -1630,7 +1630,7 @@ class ProcessRecord implements WindowProcessListener { public void setPendingUiCleanAndForceProcessStateUpTo(int newState) { synchronized (mService) { setPendingUiClean(true); mState.forceProcessStateUpTo(newState); mService.mProcessStateController.forceProcessStateUpTo(this, newState); } } Loading Loading @@ -1686,7 +1686,7 @@ class ProcessRecord implements WindowProcessListener { true /* activityChange */, true /* updateOomAdj */); setPendingUiClean(true); mService.mProcessStateController.setHasShownUi(this, true); mState.forceProcessStateUpTo(topProcessState); mService.mProcessStateController.forceProcessStateUpTo(this, topProcessState); } } Loading services/core/java/com/android/server/am/ProcessStateController.java +21 −4 Original line number Diff line number Diff line Loading @@ -54,7 +54,9 @@ public class ProcessStateController { private final OomAdjuster mOomAdjuster; private final BiConsumer<ConnectionRecord, Boolean> mServiceBinderCallUpdater; // TODO(b/425766486): Investigate if we could use java.util.concurrent.locks.ReadWriteLock. private final Object mLock; private final Object mProcLock; private final Handler mActivityStateHandler; Loading @@ -64,12 +66,14 @@ public class ProcessStateController { private ProcessStateController(ActivityManagerService ams, ProcessList processList, ActiveUids activeUids, ServiceThread handlerThread, CachedAppOptimizer cachedAppOptimizer, Object lock, Looper activityStateLooper, Consumer<ProcessRecord> topChangeCallback, OomAdjuster.Injector oomAdjInjector) { CachedAppOptimizer cachedAppOptimizer, Object lock, Object procLock, Looper activityStateLooper, Consumer<ProcessRecord> topChangeCallback, OomAdjuster.Injector oomAdjInjector) { mOomAdjuster = new OomAdjusterImpl(ams, processList, activeUids, handlerThread, mGlobalState, cachedAppOptimizer, oomAdjInjector); mLock = lock; mProcLock = procLock; mActivityStateHandler = new Handler(activityStateLooper); mTopChangeCallback = topChangeCallback; final Handler serviceHandler = new Handler(handlerThread.getLooper()); Loading Loading @@ -466,6 +470,19 @@ public class ProcessStateController { proc.setActiveInstrumentation(activeInstrumentation); } @GuardedBy("mLock") void forceProcessStateUpTo(@NonNull ProcessRecord proc, int newState) { final int prevProcState = proc.mState.getReportedProcState(); if (prevProcState > newState) { synchronized (mProcLock) { proc.mState.setReportedProcState(newState); proc.mState.setCurProcState(newState); proc.mState.setCurRawProcState(newState); mOomAdjuster.onProcessStateChanged(proc, prevProcState); } } } /********************* Process Visibility State Events *********************/ /** * Note whether a process has Top UI or not. Loading Loading @@ -955,8 +972,8 @@ public class ProcessStateController { mOomAdjInjector = new OomAdjuster.Injector(); } return new ProcessStateController(mAms, mProcessList, mActiveUids, mHandlerThread, mCachedAppOptimizer, mLock, mActivityStateLooper, mTopChangeCallback, mOomAdjInjector); mCachedAppOptimizer, mLock, mAms.mProcLock, mActivityStateLooper, mTopChangeCallback, mOomAdjInjector); } /** Loading services/core/java/com/android/server/am/ProcessStateRecord.java +0 −13 Original line number Diff line number Diff line Loading @@ -620,19 +620,6 @@ final class ProcessStateRecord { return mRepProcState; } @GuardedBy("mService") void forceProcessStateUpTo(int newState) { if (mRepProcState > newState) { synchronized (mProcLock) { final int prevProcState = mRepProcState; setReportedProcState(newState); setCurProcState(newState); setCurRawProcState(newState); mService.mOomAdjuster.onProcessStateChanged(mApp, prevProcState); } } } @GuardedBy({"mService", "mProcLock"}) void setSetProcState(int setProcState) { if (ActivityManager.isProcStateCached(mSetProcState) Loading Loading
services/core/java/com/android/server/am/BroadcastQueueImpl.java +2 −1 Original line number Diff line number Diff line Loading @@ -2101,7 +2101,8 @@ class BroadcastQueueImpl extends BroadcastQueue { mService.mProcessStateController.noteBroadcastDeliveryStarted(queue.app, queue.getPreferredSchedulingGroupLocked()); if (queue.runningOomAdjusted) { queue.app.mState.forceProcessStateUpTo(ActivityManager.PROCESS_STATE_RECEIVER); mService.mProcessStateController.forceProcessStateUpTo(queue.app, ActivityManager.PROCESS_STATE_RECEIVER); mService.enqueueOomAdjTargetLocked(queue.app); } } Loading
services/core/java/com/android/server/am/ProcessRecord.java +2 −2 Original line number Diff line number Diff line Loading @@ -1630,7 +1630,7 @@ class ProcessRecord implements WindowProcessListener { public void setPendingUiCleanAndForceProcessStateUpTo(int newState) { synchronized (mService) { setPendingUiClean(true); mState.forceProcessStateUpTo(newState); mService.mProcessStateController.forceProcessStateUpTo(this, newState); } } Loading Loading @@ -1686,7 +1686,7 @@ class ProcessRecord implements WindowProcessListener { true /* activityChange */, true /* updateOomAdj */); setPendingUiClean(true); mService.mProcessStateController.setHasShownUi(this, true); mState.forceProcessStateUpTo(topProcessState); mService.mProcessStateController.forceProcessStateUpTo(this, topProcessState); } } Loading
services/core/java/com/android/server/am/ProcessStateController.java +21 −4 Original line number Diff line number Diff line Loading @@ -54,7 +54,9 @@ public class ProcessStateController { private final OomAdjuster mOomAdjuster; private final BiConsumer<ConnectionRecord, Boolean> mServiceBinderCallUpdater; // TODO(b/425766486): Investigate if we could use java.util.concurrent.locks.ReadWriteLock. private final Object mLock; private final Object mProcLock; private final Handler mActivityStateHandler; Loading @@ -64,12 +66,14 @@ public class ProcessStateController { private ProcessStateController(ActivityManagerService ams, ProcessList processList, ActiveUids activeUids, ServiceThread handlerThread, CachedAppOptimizer cachedAppOptimizer, Object lock, Looper activityStateLooper, Consumer<ProcessRecord> topChangeCallback, OomAdjuster.Injector oomAdjInjector) { CachedAppOptimizer cachedAppOptimizer, Object lock, Object procLock, Looper activityStateLooper, Consumer<ProcessRecord> topChangeCallback, OomAdjuster.Injector oomAdjInjector) { mOomAdjuster = new OomAdjusterImpl(ams, processList, activeUids, handlerThread, mGlobalState, cachedAppOptimizer, oomAdjInjector); mLock = lock; mProcLock = procLock; mActivityStateHandler = new Handler(activityStateLooper); mTopChangeCallback = topChangeCallback; final Handler serviceHandler = new Handler(handlerThread.getLooper()); Loading Loading @@ -466,6 +470,19 @@ public class ProcessStateController { proc.setActiveInstrumentation(activeInstrumentation); } @GuardedBy("mLock") void forceProcessStateUpTo(@NonNull ProcessRecord proc, int newState) { final int prevProcState = proc.mState.getReportedProcState(); if (prevProcState > newState) { synchronized (mProcLock) { proc.mState.setReportedProcState(newState); proc.mState.setCurProcState(newState); proc.mState.setCurRawProcState(newState); mOomAdjuster.onProcessStateChanged(proc, prevProcState); } } } /********************* Process Visibility State Events *********************/ /** * Note whether a process has Top UI or not. Loading Loading @@ -955,8 +972,8 @@ public class ProcessStateController { mOomAdjInjector = new OomAdjuster.Injector(); } return new ProcessStateController(mAms, mProcessList, mActiveUids, mHandlerThread, mCachedAppOptimizer, mLock, mActivityStateLooper, mTopChangeCallback, mOomAdjInjector); mCachedAppOptimizer, mLock, mAms.mProcLock, mActivityStateLooper, mTopChangeCallback, mOomAdjInjector); } /** Loading
services/core/java/com/android/server/am/ProcessStateRecord.java +0 −13 Original line number Diff line number Diff line Loading @@ -620,19 +620,6 @@ final class ProcessStateRecord { return mRepProcState; } @GuardedBy("mService") void forceProcessStateUpTo(int newState) { if (mRepProcState > newState) { synchronized (mProcLock) { final int prevProcState = mRepProcState; setReportedProcState(newState); setCurProcState(newState); setCurRawProcState(newState); mService.mOomAdjuster.onProcessStateChanged(mApp, prevProcState); } } } @GuardedBy({"mService", "mProcLock"}) void setSetProcState(int setProcState) { if (ActivityManager.isProcStateCached(mSetProcState) Loading