diff options
author | Tim Murray <timmurray@google.com> | 2018-05-02 15:14:35 -0700 |
---|---|---|
committer | Tim Murray <timmurray@google.com> | 2018-05-09 17:24:55 +0000 |
commit | b52f000feceb6a73072e94a73c1883d469f24a29 (patch) | |
tree | 8fc077b8cd92154ad6e7af0cb7ad8a4c9b9a5599 /tools/aapt2/java/JavaClassGenerator_test.cpp | |
parent | eb43503f1925d36caf346ca9d76eb7a8dfa7725a (diff) |
ActivityManagerService: explicitly break connection cycles
Currently, it is possible for two services to bind to each other and
receive each other's oom_adj, even if there are no other bindings that
would cause either process to be promoted. This causes a pair of
services to remain at a higher oom_adj level than they intended if
one service was promoted by a binding that was later destroyed.
To fix this, any process that encounters a cycle will be marked for a
later adjustment, and those bindings that encounter a cycle will not be
used to promote processes. After the initial oom_adj adjustments, all
processes that encountered a cycle will be retried. These retries will
continue until no process that encountered a cycle changes its process
state, at which point the process states should be stable.
Test: CTS; boots; runs normally
bug 78894563
Change-Id: I7cb2aa2fc461c08bc8e7f687a673249aef78351b
Diffstat (limited to 'tools/aapt2/java/JavaClassGenerator_test.cpp')
0 files changed, 0 insertions, 0 deletions