[8] Review request for 8015730: PIT: On Linux, OGL=true and fbobject=false leads to deadlock or infinite loop (original) (raw)

Anton Litvinov anton.litvinov at oracle.com
Fri Jun 28 10:16:03 PDT 2013


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



More information about the awt-dev mailing list