<AWT Dev> [9] Review request for 8166942: Usage of SplashScreen Functions hangs up FX Application
Semyon Sadetsky
semyon.sadetsky at oracle.com
Thu Oct 6 07:02:51 UTC 2016
Hi Alexander,
Is it safe to lock the mutex on one thread and unlock it on another?
--Semyon
On 06.10.2016 06:08, Alexander Zvegintsev wrote:
> 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
>
More information about the awt-dev
mailing list