RFR: JDK-8302355: Public API for Toolkit.canStartNestedEventLoop() [v2]
Kevin Rushforth
kcr at openjdk.org
Thu Feb 16 23:19:01 UTC 2023
On Thu, 16 Feb 2023 21:48:08 GMT, Marius Hanl <mhanl at openjdk.org> wrote:
>> This PR adds the last missing method for dealing with nested event loops.
>> As also written in the ticket, there is currently no (public) way to find out whether it is safe to start an event loop now or not.
>> Classes like `Dialog` check via `Toolkit.getToolkit().canStartNestedEventLoop()` (sun api), if it safe to start a nested event loop before doing so.
>
> Marius Hanl has updated the pull request incrementally with one additional commit since the last revision:
>
> JDK-8302355: checkFxUserThread(), adjusted javadoc accordingly. Added Tests
I left a couple suggestions on the docs, but otherwise it looks ready to me.
The implementation changes and the new test look good.
modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 396:
> 394: /**
> 395: * Indicates whether a nested event loop can be started from the current thread in the current state.
> 396: * Note that a nested event loop is not allowed outside an event handler.
I would either remove this sentence (probably cleanest), or else change it to a positive statement (say when it is allowed, not when it isn't) and also add that it's ok when called from a Runnable passed to `Platform.runLater`. Maybe something like this:
A nested event loop can be started from an event handler or from a `Runnable` passed
to `Platform.runLater(Runnable)`.
modules/javafx.graphics/src/main/java/javafx/application/Platform.java line 399:
> 397: * This method must be called on the JavaFX Application thread.
> 398: *
> 399: * @return true if a nested event loop can be started, and false otherwise.
I recommend code case here: `{@code true}` and `{@code false}`.
-------------
PR: https://git.openjdk.org/jfx/pull/1031
More information about the openjfx-dev
mailing list