summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Jing Ji <jji@google.com> 2022-06-21 03:42:48 +0000
committer Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> 2022-06-21 03:42:48 +0000
commitc2cbdc7065d2ccf05a313bd65c5061cc8b6b0c7f (patch)
treeaa916d02b755512b223f12eb322d28f1e4fcfcc1
parent29267e1b30548887b85eaceae216b28a09974c8f (diff)
parentf24ac73825332388241f7b7244f9eaad30351d77 (diff)
Merge "Recheck the condition before really killing" am: f24ac73825
Original change: https://android-review.googlesource.com/c/platform/frameworks/base/+/2121361 Change-Id: I3d1793941c3a96133b51e787008e1c6fb82566fd Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
-rw-r--r--services/core/java/com/android/server/am/ActivityManagerService.java8
1 files changed, 8 insertions, 0 deletions
diff --git a/services/core/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
index e28170f63795..683b730b4f45 100644
--- a/services/core/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -14372,6 +14372,10 @@ public class ActivityManagerService extends IActivityManager.Stub
app.processName, app.toShortString(), cpuLimit, app)) {
mHandler.post(() -> {
synchronized (ActivityManagerService.this) {
+ if (app.getThread() == null
+ || app.mState.getSetProcState() < ActivityManager.PROCESS_STATE_HOME) {
+ return;
+ }
app.killLocked("excessive cpu " + cpuTimeUsed + " during "
+ uptimeSince + " dur=" + checkDur + " limit=" + cpuLimit,
ApplicationExitInfo.REASON_EXCESSIVE_RESOURCE_USAGE,
@@ -14397,6 +14401,10 @@ public class ActivityManagerService extends IActivityManager.Stub
app.processName, r.toString(), cpuLimit, app)) {
mHandler.post(() -> {
synchronized (ActivityManagerService.this) {
+ if (app.getThread() == null
+ || app.mState.getSetProcState() < ActivityManager.PROCESS_STATE_HOME) {
+ return;
+ }
mPhantomProcessList.killPhantomProcessGroupLocked(app, r,
ApplicationExitInfo.REASON_EXCESSIVE_RESOURCE_USAGE,
ApplicationExitInfo.SUBREASON_EXCESSIVE_CPU,