From e7dade153caf14574ac14ccd2c1fd2257a712b2c Mon Sep 17 00:00:00 2001 From: liulvping Date: Wed, 6 Nov 2019 15:12:20 +0800 Subject: BugFix: add synchronized protection Test: manual Change-Id: I1e8b4756e435c13cead2b21619a0c72a399117f7 Signed-off-by: liulvping --- .../core/java/com/android/server/AppStateTracker.java | 18 ++++++++++-------- 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/services/core/java/com/android/server/AppStateTracker.java b/services/core/java/com/android/server/AppStateTracker.java index 3a7b5d683507..207e007cc62f 100644 --- a/services/core/java/com/android/server/AppStateTracker.java +++ b/services/core/java/com/android/server/AppStateTracker.java @@ -700,14 +700,16 @@ public class AppStateTracker { Slog.d(TAG,"onAppIdleStateChanged: " + packageName + " u" + userId + (idle ? " idle" : " active") + " " + bucket); } - final boolean changed; - if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) { - changed = mExemptedPackages.add(userId, packageName); - } else { - changed = mExemptedPackages.remove(userId, packageName); - } - if (changed) { - mHandler.notifyExemptChanged(); + synchronized (mLock) { + final boolean changed; + if (bucket == UsageStatsManager.STANDBY_BUCKET_EXEMPTED) { + changed = mExemptedPackages.add(userId, packageName); + } else { + changed = mExemptedPackages.remove(userId, packageName); + } + if (changed) { + mHandler.notifyExemptChanged(); + } } } -- cgit v1.2.3-59-g8ed1b