summaryrefslogtreecommitdiffstats
path: root/services
diff options
context:
space:
mode:
authorMark Lu <Mark_Lu@htc.com>2015-11-06 15:26:15 +0800
committerJoe LaPenna <jlapenna@google.com>2015-11-11 17:39:24 -0800
commit7018f60b06fd0c647ebf13225320d7e15d02e075 (patch)
treee57985493090564dc1c8ca9423442c89474fc295 /services
parent1090acc958add85c1332fc73b66258ea4efba69e (diff)
downloadframeworks_base-7018f60b06fd0c647ebf13225320d7e15d02e075.zip
frameworks_base-7018f60b06fd0c647ebf13225320d7e15d02e075.tar.gz
frameworks_base-7018f60b06fd0c647ebf13225320d7e15d02e075.tar.bz2
DO NOT MERGE ANYWHERE Fix system watchdog timeout when reading too many usage events.
Symptom: As issue link: https://code.google.com/p/android/issues/detail?id=193100 RootCause: UsageStatsService.onDisplayChanged executed in system main thread, If calling UsageStatsManager.queryEvents with too many events before it (i.e. in daily usage event file, too many activity resume / pause events or configuration change during monkey test), System will be blocked then watchdog timeout. Solution: Let display listener executed in background thread handler BUG: 25355086 Change-Id: Ic894d112612400ed8fb7ba843b3309fdc4f66fe1 (Cherrypicked from 4e59db328d8b0cc163d2e3eb0f7f3a108f20a58d)
Diffstat (limited to 'services')
-rw-r--r--services/usage/java/com/android/server/usage/UsageStatsService.java2
1 files changed, 1 insertions, 1 deletions
diff --git a/services/usage/java/com/android/server/usage/UsageStatsService.java b/services/usage/java/com/android/server/usage/UsageStatsService.java
index 2b8afba..54d9cd9 100644
--- a/services/usage/java/com/android/server/usage/UsageStatsService.java
+++ b/services/usage/java/com/android/server/usage/UsageStatsService.java
@@ -218,7 +218,7 @@ public class UsageStatsService extends SystemService implements
synchronized (this) {
mScreenOnTime = readScreenOnTimeLocked();
}
- mDisplayManager.registerDisplayListener(mDisplayListener, null);
+ mDisplayManager.registerDisplayListener(mDisplayListener, mHandler);
synchronized (this) {
updateDisplayLocked();
}