summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorDianne Hackborn <hackbod@google.com>2013-10-15 01:00:07 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2013-10-15 01:00:07 +0000
commite49a107a241b77c2361d67796dcb433441d91e37 (patch)
tree9eccbfdfdc3ca30557f7d02557d338dde9622d92 /services
parenta6ffa4ef021ee35a533bc05205d6add6971cc44a (diff)
parent878deb3c7b33a0c508137143c776e07bab0296cf (diff)
downloadframeworks_base-e49a107a241b77c2361d67796dcb433441d91e37.zip
frameworks_base-e49a107a241b77c2361d67796dcb433441d91e37.tar.gz
frameworks_base-e49a107a241b77c2361d67796dcb433441d91e37.tar.bz2
Merge "Fix issue #11223335: APR: Lots of failures in procstats due to..." into klp-dev
Diffstat (limited to 'services')
-rw-r--r--services/java/com/android/server/am/ActiveServices.java20
-rw-r--r--services/java/com/android/server/am/ServiceRecord.java7
-rw-r--r--services/java/com/android/server/pm/Settings.java3
3 files changed, 18 insertions, 12 deletions
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/java/com/android/server/am/ActiveServices.java
index b69a0c8..a64940c 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/java/com/android/server/am/ActiveServices.java
@@ -1494,7 +1494,7 @@ public final class ActiveServices {
} catch (Exception e) {
Slog.w(TAG, "Exception when unbinding service "
+ r.shortName, e);
- serviceDoneExecutingLocked(r, true, true);
+ serviceProcessGoneLocked(r);
}
}
}
@@ -1544,7 +1544,7 @@ public final class ActiveServices {
} catch (Exception e) {
Slog.w(TAG, "Exception when destroying service "
+ r.shortName, e);
- serviceDoneExecutingLocked(r, true, true);
+ serviceProcessGoneLocked(r);
}
updateServiceForegroundLocked(r.app, false);
} else {
@@ -1570,7 +1570,7 @@ public final class ActiveServices {
r.tracker.setStarted(false, memFactor, now);
r.tracker.setBound(false, memFactor, now);
if (r.executeNesting == 0) {
- r.tracker.clearCurrentOwner(r);
+ r.tracker.clearCurrentOwner(r, false);
r.tracker = null;
}
}
@@ -1629,7 +1629,7 @@ public final class ActiveServices {
s.app.thread.scheduleUnbindService(s, b.intent.intent.getIntent());
} catch (Exception e) {
Slog.w(TAG, "Exception when unbinding service " + s.shortName, e);
- serviceDoneExecutingLocked(s, true, true);
+ serviceProcessGoneLocked(s);
}
}
@@ -1708,6 +1708,16 @@ public final class ActiveServices {
}
}
+ private void serviceProcessGoneLocked(ServiceRecord r) {
+ if (r.tracker != null) {
+ int memFactor = mAm.mProcessStats.getMemFactorLocked();
+ long now = SystemClock.uptimeMillis();
+ r.tracker.setExecuting(false, memFactor, now);
+ r.tracker.setBound(false, memFactor, now);
+ }
+ serviceDoneExecutingLocked(r, true, true);
+ }
+
private void serviceDoneExecutingLocked(ServiceRecord r, boolean inDestroying,
boolean finishing) {
if (DEBUG_SERVICE) Slog.v(TAG, "<<< DONE EXECUTING " + r
@@ -1747,7 +1757,7 @@ public final class ActiveServices {
r.tracker.setExecuting(false, mAm.mProcessStats.getMemFactorLocked(),
SystemClock.uptimeMillis());
if (finishing) {
- r.tracker.clearCurrentOwner(r);
+ r.tracker.clearCurrentOwner(r, false);
r.tracker = null;
}
}
diff --git a/services/java/com/android/server/am/ServiceRecord.java b/services/java/com/android/server/am/ServiceRecord.java
index c47c1ac..cc1172a 100644
--- a/services/java/com/android/server/am/ServiceRecord.java
+++ b/services/java/com/android/server/am/ServiceRecord.java
@@ -335,12 +335,7 @@ final class ServiceRecord extends Binder {
public void forceClearTracker() {
if (tracker != null) {
- int memFactor = ams.mProcessStats.getMemFactorLocked();
- long now = SystemClock.uptimeMillis();
- tracker.setStarted(false, memFactor, now);
- tracker.setBound(false, memFactor, now);
- tracker.setExecuting(false, memFactor, now);
- tracker.clearCurrentOwner(this);
+ tracker.clearCurrentOwner(this, true);
tracker = null;
}
}
diff --git a/services/java/com/android/server/pm/Settings.java b/services/java/com/android/server/pm/Settings.java
index 377c390..92fc6a4 100644
--- a/services/java/com/android/server/pm/Settings.java
+++ b/services/java/com/android/server/pm/Settings.java
@@ -2473,7 +2473,8 @@ final class Settings {
} else if (tagName.equals("signing-keyset")) {
long id = Long.parseLong(parser.getAttributeValue(null, "identifier"));
packageSetting.keySetData.addSigningKeySet(id);
- Slog.d(TAG, "Adding signing keyset " + Long.toString(id) + " to " + name);
+ if (false) Slog.d(TAG, "Adding signing keyset " + Long.toString(id)
+ + " to " + name);
} else if (tagName.equals("defined-keyset")) {
long id = Long.parseLong(parser.getAttributeValue(null, "identifier"));
String alias = parser.getAttributeValue(null, "alias");