<Swing Dev> RFR: 8197825: [Test] Intermittent timeout with javax/swing JColorChooser Test [v4]

Alexey Ivanov aivanov at openjdk.java.net
Sat Jan 30 12:03:47 UTC 2021


On Sat, 30 Jan 2021 05:10:07 GMT, Prasanta Sadhukhan <psadhukhan at openjdk.org> wrote:

>>> Does this volatile modifier resolve the now-removed infinite loop in `while (!tk.IsDisposed())` in `WToolkit_shutdown`?
>> 
>> The loop should not be removed.
>
> Unfortunately, volatile modifier has no effect if infinite loop is reinstated..

> > Does this volatile modifier resolve the now-removed infinite loop in `while (!tk.IsDisposed())` in `WToolkit_shutdown`?
> 
> The loop should not be removed.

No, it should not, as you noted previously.

However, making `m_breakMessageLoop` volatile does not look right either. If `QuitMessageLoop` is called from `!IsMainThread()` thread, it is posted as a message to run on the correct thread. Thus `m_breakMessageLoop` should be accessed on a single thread only; if it's the case, volatile is unneeded.

And @prsadhuk's latest test confirms it. There must be something else…

-------------

PR: https://git.openjdk.java.net/jdk/pull/2220


More information about the swing-dev mailing list