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?

Mandy

[1] 
http://mail.openjdk.java.net/pipermail/core-libs-dev/2015-January/031041.html


More information about the core-libs-dev mailing list