am c39f4fc2: am 5a9cfe3e: Merge "Maybe fix issue #17614177 APR: system process restarting due to infinite loop" into lmp-dev

* commit 'c39f4fc2c4110170deec0deaae104ae474022c59':
  Maybe fix issue #17614177 APR: system process restarting due to infinite loop
This commit is contained in:
Dianne Hackborn
2014-09-23 21:15:20 +00:00
committed by Android Git Automerger
4 changed files with 17 additions and 5 deletions

View File

@@ -3570,6 +3570,10 @@ public final class ProcessStats implements Parcelable {
return mOwner != null || mRestarting;
}
public boolean isRestarting() {
return mRestarting;
}
void add(ServiceState other) {
addDurations(other);
mRunCount += other.mRunCount;

View File

@@ -895,6 +895,11 @@ public final class ActiveServices {
while (clist.size() > 0) {
ConnectionRecord r = clist.get(0);
removeConnectionLocked(r, null, null);
if (clist.size() > 0 && clist.get(0) == r) {
// In case it didn't get removed above, do it now.
Slog.wtf(TAG, "Connection " + r + " not removed for binder " + binder);
clist.remove(0);
}
if (r.binding.service.app != null) {
// This could have made the service less important.

View File

@@ -146,7 +146,9 @@ public final class ProcessStatsService extends IProcessStats.Stub {
final ArrayMap<String, ProcessStats.ServiceState> services = pkg.mServices;
for (int isvc=services.size()-1; isvc>=0; isvc--) {
final ProcessStats.ServiceState service = services.valueAt(isvc);
if (service.isInUse()) {
if (service.isRestarting()) {
service.setRestarting(true, memFactor, now);
} else if (service.isInUse()) {
if (service.mStartedState != ProcessStats.STATE_NOTHING) {
service.setStarted(true, memFactor, now);
}
@@ -157,7 +159,6 @@ public final class ProcessStatsService extends IProcessStats.Stub {
service.setExecuting(true, memFactor, now);
}
}
}
}
}

View File

@@ -5589,9 +5589,11 @@ public class PackageManagerService extends IPackageManager.Stub {
// update the package settings accordingly.
pkg.cpuAbiOverride = cpuAbiOverride;
Slog.d(TAG, "Resolved nativeLibraryRoot for " + pkg.applicationInfo.packageName
+ " to root=" + pkg.applicationInfo.nativeLibraryRootDir + ", isa="
+ pkg.applicationInfo.nativeLibraryRootRequiresIsa);
if (DEBUG_ABI_SELECTION) {
Slog.d(TAG, "Resolved nativeLibraryRoot for " + pkg.applicationInfo.packageName
+ " to root=" + pkg.applicationInfo.nativeLibraryRootDir + ", isa="
+ pkg.applicationInfo.nativeLibraryRootRequiresIsa);
}
// Push the derived path down into PackageSettings so we know what to
// clean up at uninstall time.