RFR: 8273485: Deadlock when also using Swing and exiting Fullscreen on Mac [v9]
Florian Kirmaier
fkirmaier at openjdk.org
Tue Jul 11 07:35:22 UTC 2023
On Mon, 18 Jul 2022 12:18:49 GMT, Florian Kirmaier <fkirmaier at openjdk.org> wrote:
>> When using Swing it's possible to generate a Deadlock.
>> It's related to the nested eventloop started in enterFullScreenExitingLoop - and the RenderLock aquired when using setView in Scene.
>> Sample Programm and Threaddump are added to the ticket.
>>
>> Removing the nested loop fixes the Problem.
>> I hope this doesn't have any side effect - so far i don't know of any.
>
> Florian Kirmaier has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 10 commits:
>
> - JDK-8273485
> Fixing issue caused by wrong merge.
> - Merge remote-tracking branch 'origin/master' into JDK-8273485_swing-deadlock
>
> # Conflicts:
> # modules/javafx.graphics/src/main/native-glass/mac/GlassViewDelegate.m
> - JDK-8273485
> Added check for null when calling initScreens
> - JDK-8273485
> Fixing toggle fullscreen!
> - JDK-8273485
> removed the toggle fullscreen before closing - to avoid the beep and improve the user experience
> - JDK-8273485
> Fixed Beep sound when closing a fullscreen window
> - JDK-8273485
> small cleanup of the changes.
> - JDK-8273485
> Removed the enter/leave nested event loop logic, for mac fullscreen
> - JDK-8273485
> Added unit-test
> - JDK-8273485
> Fixing deadlock when switching to fullscreen, when also swing is used.
It's nice to see there are other ways to fix the problem.
The approach of this PR had the big advantage of highly reducing the complexity.
Nested Event Loops are highly cursed - and removing one of them probably solves complicated issues at once.
We had so many issues with nested event loops - and in my opinion - they should even be removed entirely in the long run.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/622#issuecomment-1630300293
More information about the openjfx-dev
mailing list