Fix #2320798: Device hang then runtime restart

The system_server process is deadlocking between event dispatch and window
manager code.  This change fixes the lock scoping to eliminate the deadlock.

Change-Id: I00f029e4d51d7432119ad3aeec260df215b52546
This commit is contained in:
Christopher Tate
2009-12-11 12:11:31 -08:00
parent f9b0e82668
commit 2624fbcaaa

View File

@ -6011,18 +6011,18 @@ public class WindowManagerService extends IWindowManager.Stub
res.offsetLocation(-win.mFrame.left, -win.mFrame.top);
}
}
if (res != null && returnWhat == RETURN_PENDING_POINTER) {
synchronized (mWindowMap) {
if ((mWallpaperTarget == win &&
win.mAttrs.type != WindowManager.LayoutParams.TYPE_KEYGUARD)
|| mSendingPointersToWallpaper) {
sendPointerToWallpaperLocked(win, res, res.getEventTime());
}
}
if (res != null && returnWhat == RETURN_PENDING_POINTER) {
synchronized (mWindowMap) {
if ((mWallpaperTarget == win &&
win.mAttrs.type != WindowManager.LayoutParams.TYPE_KEYGUARD)
|| mSendingPointersToWallpaper) {
sendPointerToWallpaperLocked(win, res, res.getEventTime());
}
}
}
return res;
}