diff options
| -rw-r--r-- | services/core/java/com/android/server/pm/PackageManagerService.java | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/services/core/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java index 956c6e22f636..ff05f121b97b 100644 --- a/services/core/java/com/android/server/pm/PackageManagerService.java +++ b/services/core/java/com/android/server/pm/PackageManagerService.java @@ -1738,6 +1738,7 @@ public class PackageManagerService extends IPackageManager.Stub final @Nullable String mOverlayConfigSignaturePackage; final @Nullable String mRecentsPackage; + @GuardedBy("mLock") private final PackageUsage mPackageUsage = new PackageUsage(); private final CompilerStats mCompilerStats = new CompilerStats(); @@ -10630,13 +10631,14 @@ public class PackageManagerService extends IPackageManager.Stub } public void shutdown() { - mPackageUsage.writeNow(mSettings.mPackages); mCompilerStats.writeNow(); mDexManager.writePackageDexUsageNow(); PackageWatchdog.getInstance(mContext).writeNow(); - // This is the last chance to write out pending restriction settings synchronized (mLock) { + mPackageUsage.writeNow(mSettings.mPackages); + + // This is the last chance to write out pending restriction settings if (mHandler.hasMessages(WRITE_PACKAGE_RESTRICTIONS)) { mHandler.removeMessages(WRITE_PACKAGE_RESTRICTIONS); for (int userId : mDirtyUsers) { @@ -26049,7 +26051,9 @@ public class PackageManagerService extends IPackageManager.Stub } boolean isHistoricalPackageUsageAvailable() { - return mPackageUsage.isHistoricalPackageUsageAvailable(); + synchronized (mLock) { + return mPackageUsage.isHistoricalPackageUsageAvailable(); + } } /** |