Merge "Attempt to fix deadlock on saveOverrides" into sc-dev am: 782ede8ca8

Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/15013930

Change-Id: I76422b2687754a6c66921e7663b34e2b45811101
This commit is contained in:
Andrei-Valentin Onea
2021-06-18 00:07:48 +00:00
committed by Automerger Merge Worker

View File

@@ -257,8 +257,8 @@ final class CompatConfig {
addChange(c);
}
c.addPackageOverride(packageName, overrides, allowedState, versionCode);
invalidateCache();
}
invalidateCache();
return alreadyKnown;
}
@@ -379,9 +379,9 @@ final class CompatConfig {
CompatChange change = mChanges.valueAt(i);
removeOverrideUnsafe(change, packageName, versionCode);
}
saveOverrides();
invalidateCache();
}
saveOverrides();
invalidateCache();
}
/**
@@ -626,7 +626,18 @@ final class CompatConfig {
if (mOverridesFile == null) {
return;
}
Overrides overrides = new Overrides();
synchronized (mChanges) {
List<ChangeOverrides> changeOverridesList = overrides.getChangeOverrides();
for (int idx = 0; idx < mChanges.size(); ++idx) {
CompatChange c = mChanges.valueAt(idx);
ChangeOverrides changeOverrides = c.saveOverrides();
if (changeOverrides != null) {
changeOverridesList.add(changeOverrides);
}
}
}
synchronized (mOverridesFile) {
// Create the file if it doesn't already exist
try {
mOverridesFile.createNewFile();
@@ -636,15 +647,6 @@ final class CompatConfig {
}
try (PrintWriter out = new PrintWriter(mOverridesFile)) {
XmlWriter writer = new XmlWriter(out);
Overrides overrides = new Overrides();
List<ChangeOverrides> changeOverridesList = overrides.getChangeOverrides();
for (int idx = 0; idx < mChanges.size(); ++idx) {
CompatChange c = mChanges.valueAt(idx);
ChangeOverrides changeOverrides = c.saveOverrides();
if (changeOverrides != null) {
changeOverridesList.add(changeOverrides);
}
}
XmlWriter.write(writer, overrides);
} catch (IOException e) {
Slog.e(TAG, e.toString());