Hello,

Could you please review the following fix for a bug, which consists in a deadlock provoked by concurrency between AWT-EventQueue and Java2D Queue Flusher for taking AWT lock, when OpenGL rendering is enabled.

Bug: http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8015730
Webrev: http://cr.openjdk.java.net/~alitvinov/8015730/webrev.00

The fix allows the code from the native function "Java_sun_java2d_opengl_GLXSurfaceData_initPbuffer" of the file "jdk/src/solaris/native/sun/java2d/opengl/GLXSurfaceData.c" execute all XError handling procedures using "sun.awt.X11.XErrorHandlerUtil" class without acquiring AWT lock. It is the only available solution for this problem, because the current design of "sun.java2d.opengl.OGLRenderQueue" class does not allow to take AWT lock in Java2D Queue Flusher thread without reaching a deadlock, since all calls to the method "sun.java2d.opengl.OGLRenderQueue.flushAndInvokeNow(Runnable r)" are guarded by AWT lock.

Thank you,
Anton

Reply via email to