return mOwner != null || mRestarting;
}
+ public boolean isRestarting() {
+ return mRestarting;
+ }
+
void add(ServiceState other) {
addDurations(other);
mRunCount += other.mRunCount;
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.
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);
}
service.setExecuting(true, memFactor, now);
}
}
-
}
}
}
// 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.