Hello Guest

[FIXED] Freeze in Display.createWindow on windows

  • 2 Replies
[FIXED] Freeze in Display.createWindow on windows
« on: November 07, 2013, 14:55:59 »
I'm using lwjgl 2.9.1 #113 and experiences some random (rarely) deadlock on Display creation (Display inside a Canvas). Stacks at end of the post when the lock happens.
It rarely happens, but when it does it's usually the first time I run an app (slower start / not in the HD cache).

The freeze seem a regression introduced in #99 for the fix of the bug:
KeyboardFocusManager.clearMostRecentFocusOwner is now being called during Display.createWindow, which uses awt lock.

Code: [Select]
Thread [RenderLoopThread] (Suspended)
owns: Object  (id=28)
waiting for: Component$AWTTreeLock  (id=27)
KeyboardFocusManager.clearMostRecentFocusOwner(Component) line: 1824
GLCanvasDisplay_lwjgl$DisplayCanvas(Component).setFocusable(boolean) line: 7110
WindowsDisplay.clearAWTFocus() line: not available
WindowsDisplay.createWindow(DrawableLWJGL, DisplayMode, Canvas, int, int) line: not available
Display.createWindow() line: not available
Display.create(PixelFormat, Drawable, ContextAttribs) line: not available
GLCanvasDisplay_lwjgl.onStart() line: 227
RenderLoop$RenderLoopThread.run() line: 168

Thread [main] (Suspended)
owns: WFramePeer  (id=26)
owns: Component$AWTTreeLock  (id=27)
WComponentPeer.pShow() line: not available [native method]
WFramePeer(WComponentPeer).show() line: 130
WFramePeer(WWindowPeer).realShow() line: 220
WFramePeer(WWindowPeer).show() line: 237
WFramePeer(WComponentPeer).setVisible(boolean) line: 120
GLFrame(Component).show() line: 1618
GLFrame(Window).show() line: 1042
GLFrame(Component).show(boolean) line: 1651
GLFrame(Component).setVisible(boolean) line: 1603
GLFrame(Window).setVisible(boolean) line: 1014
GLFrame.setVisible(boolean) line: 239
GLFrame.run() line: 55
OasisAtSun.main(String[]) line: 135
« Last Edit: November 07, 2013, 15:39:56 by kappa »


Offline spasi

  • *****
  • 2191
    • WebHotelier
Re: [BUG] Freeze in Display.createWindow on windows
« Reply #1 on: November 07, 2013, 15:06:13 »
The clearAWTFocus() call on creation should now run in the EDT. Could you please try the next build?

Re: [FIXED] Freeze in Display.createWindow on windows
« Reply #2 on: November 08, 2013, 10:15:43 »
I've tested with 2.9.1 #114 which fix this problem, and also verified the fix in #99 is still ok.
Thanks :)