On Sat, 22 Mar 2025 18:05:13 GMT, Martin Fox <[email protected]> wrote:
>> modules/javafx.graphics/src/main/native-glass/mac/GlassApplication.m line
>> 759:
>>
>>> 757: + (BOOL)canStartNestedEventLoop
>>> 758: {
>>> 759: return nestedRunLoopRunCount <= 250;
>>
>> would it be possible to determine the source of this limit - a header
>> perhaps?
>> could it be dependent on os version?
>
> I have not been able to find any header detailing this limit. My guess is
> that someone at Apple decided to add an internal check for infinite recursion
> to ensure the app fails early with a clear message and decided 255 levels of
> nesting should be enough for anyone. The crash log contains these lines
> (which also show up in the debugger):
>
>> Application Specific Information:
>> Too many nested CFRunLoopRuns
>
> The check is new with macOS 15. I tested some standalone code on macOS 13 and
> 14 and had no problem reaching a nesting level of 500. But I don't think we
> should make the JavaFX check conditional on OS version number; I wouldn't
> want a JavaFX app that worked on macOS 14 to fail mysteriously on macOS 15.
I second Kevin's suggestion to add a constant with a good comment, since it's
an arbitrarily chosen limit. It would explain the "why" if/when the things
change in macOS.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1741#discussion_r2010372776