Merge "Fix potential race condition due to missing lock"

This commit is contained in:
Jing Ji
2021-10-20 23:58:28 +00:00
committed by Gerrit Code Review

View File

@@ -4906,7 +4906,9 @@ public final class ActiveServices {
sr.setProcess(null, null, 0, null); sr.setProcess(null, null, 0, null);
sr.isolatedProc = null; sr.isolatedProc = null;
sr.executeNesting = 0; sr.executeNesting = 0;
sr.forceClearTracker(); synchronized (mAm.mProcessStats.mLock) {
sr.forceClearTracker();
}
if (mDestroyingServices.remove(sr)) { if (mDestroyingServices.remove(sr)) {
if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr); if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr);
} }
@@ -5056,7 +5058,9 @@ public final class ActiveServices {
i--; i--;
ServiceRecord sr = mDestroyingServices.get(i); ServiceRecord sr = mDestroyingServices.get(i);
if (sr.app == app) { if (sr.app == app) {
sr.forceClearTracker(); synchronized (mAm.mProcessStats.mLock) {
sr.forceClearTracker();
}
mDestroyingServices.remove(i); mDestroyingServices.remove(i);
if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr); if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr);
} }