RFR: 8197812: (ref) Data race in Finalizer

mandy chung mandy.chung at oracle.com
Wed Feb 14 21:15:18 UTC 2018

On 2/14/18 1:58 AM, Peter Levart wrote:
> I take back this claim. Of course the the following race is possible:
> - Thread1: calls runAllFinalizers and takes a Finalizer from 
> 'unprocessed' list.
> - Thread2: takee the same Finalizer instance from ReferenceQueue and 
> calls runFinalizer()
> - Thread1: calls runFinalizer() with the same instance for the 2nd 
> time now.

runAllFinalizers is invoked during shutdown when 
System.runFinalizersOnExit has been called.

I have been wanting to remove System::runFinalizersOnExit [1] which is 
the culprit of causing this complicated handling.   Probably time to 
remove it in 11?



More information about the core-libs-dev mailing list