diff options
| author | 2021-02-20 10:45:27 +0000 | |
|---|---|---|
| committer | 2021-02-20 10:45:27 +0000 | |
| commit | c43bbe80d96d0fb4303b5177c71ad8bc1aef22e7 (patch) | |
| tree | 45f6121eeb3f41d321aa7f26cea9b18b824c8551 | |
| parent | 515af7889f6ea9db5317c23a648adb2573fca7ab (diff) | |
| parent | 07afc8b6fe973da5ba8f4c11cf90329a2e788fc2 (diff) | |
Merge changes I17d87bae,Ie975e591,I6880b9b9,Ic752c7f3 into sc-dev
* changes:
Add a TEST_MAPPING (9/n)
Fix insufficient synchronization (8/n)
Fix a race in the callback (7/n)
setExplicitHealthCheckEnabled() needs to set mSyncRequired (6/n)
| -rw-r--r-- | services/core/java/com/android/server/PackageWatchdog.java | 13 | ||||
| -rw-r--r-- | tests/PackageWatchdog/TEST_MAPPING | 7 |
2 files changed, 16 insertions, 4 deletions
diff --git a/services/core/java/com/android/server/PackageWatchdog.java b/services/core/java/com/android/server/PackageWatchdog.java index 67f6ec9f9a41..f5c2aacaebb0 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), - () -> { - syncRequestsAsync(); - mSyncRequired = true; - }); + this::onSyncRequestNotified); setPropertyChangedListenerLocked(); updateConfigs(); registerConnectivityModuleHealthListener(); @@ -537,6 +534,7 @@ public class PackageWatchdog { synchronized (mLock) { mIsHealthCheckEnabled = enabled; mHealthCheckController.setEnabled(enabled); + mSyncRequired = true; // Prune to update internal state whenever health check is enabled/disabled syncState("health check state " + (enabled ? "enabled" : "disabled")); } @@ -788,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<>(); diff --git a/tests/PackageWatchdog/TEST_MAPPING b/tests/PackageWatchdog/TEST_MAPPING new file mode 100644 index 000000000000..6494a273eced --- /dev/null +++ b/tests/PackageWatchdog/TEST_MAPPING @@ -0,0 +1,7 @@ +{ + "presubmit": [ + { + "name": "PackageWatchdogTest" + } + ] +} |