diff options
author | Sven Gothel <[email protected]> | 2019-12-05 07:38:48 +0100 |
---|---|---|
committer | Sven Gothel <[email protected]> | 2019-12-05 07:38:48 +0100 |
commit | 033ee4cad3493038480b06f6caf3de015a3e8de7 (patch) | |
tree | 205b78ada030137bb4002236bc071b241f4d9999 /src/newt/native/MacNewtNSWindow.m | |
parent | 84a2e5a250148d600d48a0dd58e07286a375f616 (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/MacNewtNSWindow.m')
0 files changed, 0 insertions, 0 deletions