Remove the window whose client process has died or become zombie

Window Manager Service would fail to report window-resized to the
process which has become zombie. This would cause the window to
freeze screen continuously. In this case, we assume the process has
died and remove its window to recycle resources and to prevent it from
freezing the screen.

Change-Id: Ic7384731bf9a1fa8b9602d4f1dbee7492db126c5
This commit is contained in:
tiger_huang
2014-07-11 18:41:48 +08:00
committed by Tiger Huang
parent 71f83672f2
commit 950ee77fc7

View File

@@ -1407,6 +1407,11 @@ final class WindowState implements WindowManagerPolicy.WindowState {
mOrientationChanging = false;
mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
- mService.mDisplayFreezeTime);
// We are assuming the hosting process is dead or in a zombie state.
Slog.w(TAG, "Failed to report 'resized' to the client of " + this
+ ", removing this window.");
mService.mPendingRemove.add(this);
mService.requestTraversalLocked();
}
}