diff options
| -rw-r--r-- | services/core/java/com/android/server/am/ActiveServices.java | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java index baf5af53bc88..2b309434d1f2 100644 --- a/services/core/java/com/android/server/am/ActiveServices.java +++ b/services/core/java/com/android/server/am/ActiveServices.java @@ -5221,7 +5221,9 @@ public final class ActiveServices { sr.setProcess(null, null, 0, null); sr.isolatedProc = null; sr.executeNesting = 0; - sr.forceClearTracker(); + synchronized (mAm.mProcessStats.mLock) { + sr.forceClearTracker(); + } if (mDestroyingServices.remove(sr)) { if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr); } @@ -5371,7 +5373,9 @@ public final class ActiveServices { i--; ServiceRecord sr = mDestroyingServices.get(i); if (sr.app == app) { - sr.forceClearTracker(); + synchronized (mAm.mProcessStats.mLock) { + sr.forceClearTracker(); + } mDestroyingServices.remove(i); if (DEBUG_SERVICE) Slog.v(TAG_SERVICE, "killServices remove destroying " + sr); } |