diff options
| -rw-r--r-- | services/core/java/com/android/server/am/OomAdjuster.java | 8 | ||||
| -rw-r--r-- | services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java | 9 |
2 files changed, 14 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/am/OomAdjuster.java b/services/core/java/com/android/server/am/OomAdjuster.java index a81590c8c022..14c5b2cb12b2 100644 --- a/services/core/java/com/android/server/am/OomAdjuster.java +++ b/services/core/java/com/android/server/am/OomAdjuster.java @@ -1260,9 +1260,11 @@ public final class OomAdjuster { // value that the caller wants us to. adj = cachedAdj; procState = PROCESS_STATE_CACHED_EMPTY; - app.setCached(true); - app.empty = true; - app.adjType = "cch-empty"; + if (!app.containsCycle) { + app.setCached(true); + app.empty = true; + app.adjType = "cch-empty"; + } if (DEBUG_OOM_ADJ_REASON || logUid == appUid) { reportOomAdjMessageLocked(TAG_OOM_ADJ, "Making empty: " + app); } diff --git a/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java b/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java index 2983d585c45a..fde40aa77a0e 100644 --- a/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java +++ b/services/tests/mockingservicestests/src/com/android/server/am/MockingOomAdjusterTests.java @@ -1387,6 +1387,15 @@ public class MockingOomAdjusterTests { SCHED_GROUP_DEFAULT); assertProcStates(app3, PROCESS_STATE_FOREGROUND_SERVICE, PERCEPTIBLE_APP_ADJ, SCHED_GROUP_DEFAULT); + assertEquals("service", app.adjType); + assertEquals("service", app2.adjType); + assertEquals("fg-service", app3.adjType); + assertEquals(false, app.isCached()); + assertEquals(false, app2.isCached()); + assertEquals(false, app3.isCached()); + assertEquals(false, app.empty); + assertEquals(false, app2.empty); + assertEquals(false, app3.empty); } @SuppressWarnings("GuardedBy") |