<AWT Dev> [9] Review request for 8166942: Usage of SplashScreen Functions hangs up FX Application

Alexander Zvegintsev alexander.zvegintsev at oracle.com
Thu Oct 6 03:08:01 UTC 2016


Hello,

please review the fix

http://cr.openjdk.java.net/~azvegint/jdk/9/8166942/00/

for the issue

https://bugs.openjdk.java.net/browse/JDK-8166942

SplashEventLoop() acquires the lock[0] and then trying to call 
SplashRedrawWindow() which is trying execute some code on the main 
thread[1]. Thus if we call SplashLock() from the main thread between [0] 
and SplashRedrawWindow() calls then we are in deadlock. Main thread is 
waiting for mutex release, other thread waiting for finish of code 
execution on the main thread. It is our case [2].

The proposed solution is to acquire the lock on the main thread.

[0] 
http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/5518ac2f2ead/src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m#l359
[1] 
http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/5518ac2f2ead/src/java.desktop/macosx/native/libsplashscreen/splashscreen_sys.m#l262
[2] 
http://hg.openjdk.java.net/jdk9/jdk9/jdk/file/5518ac2f2ead/src/java.desktop/share/native/libsplashscreen/java_awt_SplashScreen.c#l57

-- 
Thanks,
Alexander.



More information about the awt-dev mailing list