Merge "Attempt to fix deadlock on saveOverrides" into sc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
782ede8ca8
@@ -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());
|
||||
|
||||
Reference in New Issue
Block a user