Merge "Set a shorter timeout for logging a warn on slow IUserSwitchObservers." into qt-qpr1-dev am: 928add13d4

Change-Id: I170d8d5d312a4147a0b88165dc47d7544e30561c
This commit is contained in:
Automerger Merge Worker
2020-02-18 20:53:54 +00:00

View File

@@ -129,6 +129,10 @@ class UserController implements Handler.Callback {
// giving up on them and unfreezing the screen.
static final int USER_SWITCH_TIMEOUT_MS = 3 * 1000;
// Amount of time we wait for observers to handle a user switch before we log a warning.
// Must be smaller than USER_SWITCH_TIMEOUT_MS.
private static final int USER_SWITCH_WARNING_TIMEOUT_MS = 500;
// ActivityManager thread message constants
static final int REPORT_USER_SWITCH_MSG = 10;
static final int CONTINUE_USER_SWITCH_MSG = 20;
@@ -1492,9 +1496,13 @@ class UserController implements Handler.Callback {
synchronized (mLock) {
long delay = SystemClock.elapsedRealtime() - dispatchStartedTime;
if (delay > USER_SWITCH_TIMEOUT_MS) {
Slog.e(TAG, "User switch timeout: observer " + name
Slog.e(TAG, "User switch timeout: observer " + name
+ " sent result after " + delay + " ms");
} else if (delay > USER_SWITCH_WARNING_TIMEOUT_MS) {
Slog.w(TAG, "User switch slowed down by observer " + name
+ ": result sent after " + delay + " ms");
}
curWaitingUserSwitchCallbacks.remove(name);
// Continue switching if all callbacks have been notified and
// user switching session is still valid