[7u6] Please review my fix for 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame (original) (raw)
Alexander Zuev alexander.zuev at oracle.com
Sat Apr 28 01:16:40 PDT 2012
- Previous message: [7u6] Please review my fix for 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame
- Next message: [7u6] Please review my fix for 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Anthony,
sure, the details are:
the ToolkitThreadBlockerHandler is an interface that is supposed to be used when program has to wait for the event pushed to the EDT finish its task and he calls like this: while (!dispatcher.isDone()) {
DataTransferer.getInstance().getToolkitThreadBlockedHandler().enter(); } and the event handler in its unregisterEvent() method calls for handler.exit() The method is supposed to make sure that waiting on the EDT doesn't create deadlocks. The implementation depends on the toolkit architecture - on some toolkits it's NoOp since they don't care if EDT is waiting, but in LWCToolkit our AWT components are backed by Swing delegates so there are a lot of calls from native application thread to EDT and vice versa so we can't afford to stop both threads. Solution is the code that makes secondary AppKit event loop to handle native events so waiting on EDT will leave at least one event loop pumping.
The name is correct because despite the fact that we are in AWT code (LWCToolkit) we don't create nested EDT loop but running nested native (AppKit) loop - hence the name: enter/exitNativeEventLoop()
With best regards, Alex
On 4/27/12 20:54, Anthony Petrov wrote:
Hi Alexander,
Could you provide some details about the ToolkitThreadBlockedHandler interface? How is it used by the DnD code? Also, I suggest to replace the word Native with Nested in enter/exitNativeEventLoop() method names. -- best regards, Anthony On 4/26/2012 7:54 PM, Alexander Zuev wrote: Hello,
please review my fix for the CR 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame Bug description is http://bugs.sun.com/bugdatabase/viewbug.do?bugid=7148289 Fix can be found at http://cr.openjdk.java.net/~kizune/7148289/webrev.00 With best regards, Alex
- Previous message: [7u6] Please review my fix for 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame
- Next message: [7u6] Please review my fix for 7148289: [macosx] Deadlock in sun.lwawt.macosx.CWrapper$NSScreen.visibleFrame
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]