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