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);
|
addChange(c);
|
||||||
}
|
}
|
||||||
c.addPackageOverride(packageName, overrides, allowedState, versionCode);
|
c.addPackageOverride(packageName, overrides, allowedState, versionCode);
|
||||||
invalidateCache();
|
|
||||||
}
|
}
|
||||||
|
invalidateCache();
|
||||||
return alreadyKnown;
|
return alreadyKnown;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -379,9 +379,9 @@ final class CompatConfig {
|
|||||||
CompatChange change = mChanges.valueAt(i);
|
CompatChange change = mChanges.valueAt(i);
|
||||||
removeOverrideUnsafe(change, packageName, versionCode);
|
removeOverrideUnsafe(change, packageName, versionCode);
|
||||||
}
|
}
|
||||||
saveOverrides();
|
|
||||||
invalidateCache();
|
|
||||||
}
|
}
|
||||||
|
saveOverrides();
|
||||||
|
invalidateCache();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -626,7 +626,18 @@ final class CompatConfig {
|
|||||||
if (mOverridesFile == null) {
|
if (mOverridesFile == null) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
Overrides overrides = new Overrides();
|
||||||
synchronized (mChanges) {
|
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
|
// Create the file if it doesn't already exist
|
||||||
try {
|
try {
|
||||||
mOverridesFile.createNewFile();
|
mOverridesFile.createNewFile();
|
||||||
@@ -636,15 +647,6 @@ final class CompatConfig {
|
|||||||
}
|
}
|
||||||
try (PrintWriter out = new PrintWriter(mOverridesFile)) {
|
try (PrintWriter out = new PrintWriter(mOverridesFile)) {
|
||||||
XmlWriter writer = new XmlWriter(out);
|
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);
|
XmlWriter.write(writer, overrides);
|
||||||
} catch (IOException e) {
|
} catch (IOException e) {
|
||||||
Slog.e(TAG, e.toString());
|
Slog.e(TAG, e.toString());
|
||||||
|
|||||||
Reference in New Issue
Block a user