On Sat, 30 Jan 2021 12:00:43 GMT, Alexey Ivanov <aiva...@openjdk.org> wrote:
>> 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⦠I ran the test locally for several iterations but it does not fail locally so I believe it's a test issue. Re reverting the test changes made in 1st webrev... ------------- PR: https://git.openjdk.java.net/jdk/pull/2220