diff options
| author | 2021-02-01 10:47:49 +0800 | |
|---|---|---|
| committer | 2021-02-01 12:40:21 +0800 | |
| commit | dc10cf0b09734e9996a8a8f12a6423f4f52c6f3e (patch) | |
| tree | f66e02ad138816b85ef6a807b5cf124f6696aea3 | |
| parent | 07c28cceeaf5e2944c900a5de6971a8574ee4d6c (diff) | |
Fix insufficient synchronization (8/n)
mSyncRequired must be accessed within the lock.
Bug: 178675924
Test: atest PackageWatchdogTest
Change-Id: Ie975e5910de53af670862de48ccf0cd4eeff0184
| -rw-r--r-- | services/core/java/com/android/server/PackageWatchdog.java | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java index 61cbe17c531c..6a53dd6ed3bd 100644 --- a/services/core/java/com/android/server/PackageWatchdog.java +++ b/services/core/java/com/android/server/PackageWatchdog.java @@ -259,10 +259,7 @@ public class PackageWatchdog { mIsPackagesReady = true; mHealthCheckController.setCallbacks(packageName -> onHealthCheckPassed(packageName), packages -> onSupportedPackages(packages), - () -> { - mSyncRequired = true; - syncRequestsAsync(); - }); + this::onSyncRequestNotified); setPropertyChangedListenerLocked(); updateConfigs(); registerConnectivityModuleHealthListener(); @@ -789,6 +786,13 @@ public class PackageWatchdog { } } + private void onSyncRequestNotified() { + synchronized (mLock) { + mSyncRequired = true; + syncRequestsAsync(); + } + } + @GuardedBy("mLock") private Set<String> getPackagesPendingHealthChecksLocked() { Set<String> packages = new ArraySet<>(); |