From dc10cf0b09734e9996a8a8f12a6423f4f52c6f3e Mon Sep 17 00:00:00 2001 From: JW Wang Date: Mon, 1 Feb 2021 10:47:49 +0800 Subject: Fix insufficient synchronization (8/n) mSyncRequired must be accessed within the lock. Bug: 178675924 Test: atest PackageWatchdogTest Change-Id: Ie975e5910de53af670862de48ccf0cd4eeff0184 --- services/core/java/com/android/server/PackageWatchdog.java | 12 ++++++++---- 1 file 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 getPackagesPendingHealthChecksLocked() { Set packages = new ArraySet<>(); -- cgit v1.2.3-59-g8ed1b