On Tue, 15 Apr 2025 00:00:35 GMT, Hans Boehm <hbo...@google.com> wrote:
> > Racy initialization is fine, the field can be static and the last one (any > > racy init would all the same) wins: > > How did you conclude that? From what I can see, Method has non-final fields. > If another thread reads waitForReferenceProcessingMethod shortly after it is > set, wfrp may be non-null, but its fields may not appear to be set correctly. > > Furthermore, it seems to me there is nothing to stop the compiler from moving > up the assignment to waitForReferenceProcessingMethod. > > AFAICT, waitForReferenceProcessingMethod needs to be volatile here. Which > shouldn't matter that much anymore on most modern hardware. Agreed. I'm pretty sure that all of the places I know of where I want to use this are single-threaded, but being cautious is better. ------------- PR Comment: https://git.openjdk.org/jdk/pull/24527#issuecomment-2803873414