aboutsummaryrefslogtreecommitdiffstats
path: root/src/newt/native/X11RandR11.c
diff options
context:
space:
mode:
authorSven Gothel <[email protected]>2019-12-05 07:38:48 +0100
committerSven Gothel <[email protected]>2019-12-05 07:38:48 +0100
commit033ee4cad3493038480b06f6caf3de015a3e8de7 (patch)
tree205b78ada030137bb4002236bc071b241f4d9999 /src/newt/native/X11RandR11.c
parent84a2e5a250148d600d48a0dd58e07286a375f616 (diff)
Bug 1405, Bug 1406, Bug 1408: Resolution: Call ReleasePrimitiveArrayCritical(..) in GetPrimitiveArrayCritical(..) code path!egl-gbm
Now that was quite a miss, causing the bugs in the first place! The freeze was caused in the JVM, as this open GetPrimitiveArrayCritical(..) disabled the GC. This was reported via '-Xcheck:jni'. Depending on the system/jvm, the freeze may happen early or only after a while. This code path was not executed with new property 'newt.disable.PointerIcon' set, but from there to finding the missing critical release - a journey: - jstack showed "main" #1 prio=5 os_prio=0 cpu=275.71ms elapsed=51.93s allocated=9710K defined_classes=472 tid=0x00007f7084015000 nid=0x1a39 waiting on condition [0x00007f70897c2000] java.lang.Thread.State: RUNNABLE at jogamp.opengl.es3.GLES3Impl.dispatch_glUniformMatrix4fv1(Native Method) at jogamp.opengl.es3.GLES3Impl.glUniformMatrix4fv(GLES3Impl.java:2585) at jogamp.opengl.es3.GLES3Impl.glUniform(GLES3Impl.java:10713) -- said that this thread was no more running, waiting on condition .. -- glUniformMatrix4fv1 was given an array! - '-Xcheck:jni' gave: Warning: Calling other JNI functions in the scope of Get/ReleasePrimitiveArrayCritical or Get/ReleaseStringCritical -- Now it is clear that the lack of releasing the critical array, returning to Java and then calling other JNI methods caused the Warning - and eventually the freeze.
Diffstat (limited to 'src/newt/native/X11RandR11.c')
0 files changed, 0 insertions, 0 deletions