[DO NOT MERGE] Increased user switch timeout to 3s

Also report the actual delay if sendResult is eventually called.

Test: Manual - device boots, no timeouts
Bug: 30813554
Change-Id: I1271181ab9d2653fad1167049c84a6780ad46ff0
This commit is contained in:
Fyodor Kupolov
2016-12-06 11:46:56 -08:00
parent 31f2e91892
commit 2fe1990ba7

View File

@@ -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) {