summaryrefslogtreecommitdiff
path: root/core/java
diff options
context:
space:
mode:
authorSudheer Shanka <sudheersai@google.com>2018-02-13 23:44:56 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2018-02-13 23:44:56 +0000
commitf7431febe056dc6114d0d41e92a12b99088977fb (patch)
tree9dfa602fec17802aefa853ba64fad00750e96dcf /core/java
parentf297b8d7e1e5b691dd440958dfe07951fc267683 (diff)
parent318a67d81fb990b015ae96a3d15d74887f4860db (diff)
Merge "Update the internal state before sending the deltas to callback."
Diffstat (limited to 'core/java')
-rw-r--r--core/java/com/android/internal/os/KernelUidCpuTimeReader.java12
1 files changed, 7 insertions, 5 deletions
diff --git a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
index 65615c0ffb02..444049e7e415 100644
--- a/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
+++ b/core/java/com/android/internal/os/KernelUidCpuTimeReader.java
@@ -78,10 +78,11 @@ public class KernelUidCpuTimeReader {
final long userTimeUs = Long.parseLong(splitter.next(), 10);
final long systemTimeUs = Long.parseLong(splitter.next(), 10);
+ boolean notifyCallback = false;
+ long userTimeDeltaUs = userTimeUs;
+ long systemTimeDeltaUs = systemTimeUs;
// Only report if there is a callback and if this is not the first read.
if (callback != null && mLastTimeReadUs != 0) {
- long userTimeDeltaUs = userTimeUs;
- long systemTimeDeltaUs = systemTimeUs;
int index = mLastUserTimeUs.indexOfKey(uid);
if (index >= 0) {
userTimeDeltaUs -= mLastUserTimeUs.valueAt(index);
@@ -114,12 +115,13 @@ public class KernelUidCpuTimeReader {
}
}
- if (userTimeDeltaUs != 0 || systemTimeDeltaUs != 0) {
- callback.onUidCpuTime(uid, userTimeDeltaUs, systemTimeDeltaUs);
- }
+ notifyCallback = (userTimeDeltaUs != 0 || systemTimeDeltaUs != 0);
}
mLastUserTimeUs.put(uid, userTimeUs);
mLastSystemTimeUs.put(uid, systemTimeUs);
+ if (notifyCallback) {
+ callback.onUidCpuTime(uid, userTimeDeltaUs, systemTimeDeltaUs);
+ }
}
} catch (IOException e) {
Slog.e(TAG, "Failed to read uid_cputime: " + e.getMessage());