[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:
@@ -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) {
|
||||||
|
|||||||
Reference in New Issue
Block a user