Fix insufficient synchronization (8/n)

mSyncRequired must be accessed within the lock.

Bug: 178675924
Test: atest PackageWatchdogTest
Change-Id: Ie975e5910de53af670862de48ccf0cd4eeff0184
This commit is contained in:
JW Wang
2021-02-01 10:47:49 +08:00
parent 07c28cceea
commit dc10cf0b09

View File

@@ -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<>();