If you mean the changes proposed in Draft PR https://github.com/openjdk/jfx/pull/1349 those are too-intrusive for where we are in JavaFX 22. I see no chance that we will get agreement on the approach and be able to finish the code review and CSR in the next 4 business days.

If we later get general agreement that the changes you propose are needed, we could consider them for JavaFX 23. For 22, I think we're down to either leaving it as is or reverting the thread checks and wrapping the implementation in a runLater.

I don't think having the state change be asynchronous if you run it on a thread other than the application thread will be an issue. And, as I pointed out earlier, it is documented that the animation might not start or stop right away.

-- Kevin


On 1/25/2024 11:07 AM, Michael Strauß wrote:
Hi Kevin,

have you considered my proposal, which is basically the same approach:
it uses runLater internally to dispatch the interaction with
AbstractPrimaryTimer (instead of trying to make AbstractPrimaryTimer
work under concurrent access).

But from the point of view of the caller, the API works just as it
worked before: all state changes of the Animation class are instantly
visible, there is no surprising change as it would be with what you're
currently proposing.

With my proposal, play() can be called on a background thread, and the
behavior of the Animation class remains the same. If you're reading
getStatus() after calling play(), you will always see that the
animation is currently running (even if internally, the animation
hasn't yet been added to the primary timer).


On Thu, Jan 25, 2024 at 6:30 PM Kevin Rushforth
<kevin.rushfo...@oracle.com> wrote:
And that's why the "be careful" option is not a satisfying solution.

Let's proceed with the option to change the implementation of play/pause/stop/start to do 
the work in a runLater, and change the docs accordingly. It's the only feasible option 
for JavaFX 22 (other than "do nothing"), and I also think it is a good choice. 
If we later want to evolve it for thread-safety, which I'm not convinced that we do, we 
can consider that for a future release.

-- Kevin

Reply via email to