Merge "[DO NOT MERGE] Increased user switch timeout to 3s" into nyc-mr2-dev

This commit is contained in:
Fyodor Kupolov
2016-12-09 19:58:18 +00:00
committed by Android (Google) Code Review

View File

@@ -112,7 +112,7 @@ final class UserController {
// Amount of time we wait for observers to handle a user switch before // Amount of time we wait for observers to handle a user switch before
// giving up on them and unfreezing the screen. // 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 ActivityManagerService mService;
private final Handler mHandler; private final Handler mHandler;
@@ -1085,6 +1085,7 @@ final class UserController {
mCurWaitingUserSwitchCallbacks = curWaitingUserSwitchCallbacks; mCurWaitingUserSwitchCallbacks = curWaitingUserSwitchCallbacks;
} }
final AtomicInteger waitingCallbacksCount = new AtomicInteger(observerCount); final AtomicInteger waitingCallbacksCount = new AtomicInteger(observerCount);
final long dispatchStartedTime = SystemClock.elapsedRealtime();
for (int i = 0; i < observerCount; i++) { for (int i = 0; i < observerCount; i++) {
try { try {
// Prepend with unique prefix to guarantee that keys are unique // Prepend with unique prefix to guarantee that keys are unique
@@ -1096,6 +1097,11 @@ final class UserController {
@Override @Override
public void sendResult(Bundle data) throws RemoteException { public void sendResult(Bundle data) throws RemoteException {
synchronized (mService) { 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 // Early return if this session is no longer valid
if (curWaitingUserSwitchCallbacks if (curWaitingUserSwitchCallbacks
!= mCurWaitingUserSwitchCallbacks) { != mCurWaitingUserSwitchCallbacks) {