summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author Fyodor Kupolov <fkupolov@google.com> 2016-12-09 20:10:53 +0000
committer android-build-merger <android-build-merger@google.com> 2016-12-09 20:10:53 +0000
commitbc8940f42542c75f68abba0a7f860d0c812fbcd5 (patch)
treef5f7ab80b27f24e9fa791f96fff37081c57d8878
parentca9a29f1582d2ef5d6eb1d0cb19fa02312a49890 (diff)
parent2fe1990ba779ef3fdb77cc596ff9eefeaeef613d (diff)
[DO NOT MERGE] Increased user switch timeout to 3s
am: 2fe1990ba7 Change-Id: I0c33b2804fe41885c02567d3ed5208993b46086a
-rw-r--r--services/core/java/com/android/server/am/UserController.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/services/core/java/com/android/server/am/UserController.java b/services/core/java/com/android/server/am/UserController.java
index 4bc148bef290..1ef3728c6444 100644
--- a/services/core/java/com/android/server/am/UserController.java
+++ b/services/core/java/com/android/server/am/UserController.java
@@ -112,7 +112,7 @@ final class UserController {
// Amount of time we wait for observers to handle a user switch before
// giving up on them and unfreezing the screen.
- static final int USER_SWITCH_TIMEOUT = 2 * 1000;
+ static final int USER_SWITCH_TIMEOUT = 3 * 1000;
private final ActivityManagerService mService;
private final Handler mHandler;
@@ -1085,6 +1085,7 @@ final class UserController {
mCurWaitingUserSwitchCallbacks = curWaitingUserSwitchCallbacks;
}
final AtomicInteger waitingCallbacksCount = new AtomicInteger(observerCount);
+ final long dispatchStartedTime = SystemClock.elapsedRealtime();
for (int i = 0; i < observerCount; i++) {
try {
// Prepend with unique prefix to guarantee that keys are unique
@@ -1096,6 +1097,11 @@ final class UserController {
@Override
public void sendResult(Bundle data) throws RemoteException {
synchronized (mService) {
+ long delay = SystemClock.elapsedRealtime() - dispatchStartedTime;
+ if (delay > USER_SWITCH_TIMEOUT) {
+ Slog.wtf(TAG, "User switch timeout: observer " + name
+ + " sent result after " + delay + " ms");
+ }
// Early return if this session is no longer valid
if (curWaitingUserSwitchCallbacks
!= mCurWaitingUserSwitchCallbacks) {