RFR(s): 8191859: SoftReference clock/timestamp should be declared volatile

Per Liden per.liden at oracle.com
Fri Nov 24 13:13:47 UTC 2017


The clock and timestamp fields in SoftReference should be declared 
volatile. These fields are read or updated by the VM, (possibly) 
concurrently with the execution of Java threads.

To be more specific, the timestamp field is read by the GC during 
reference discovery, e.g. during G1/CMS concurrent mark. The clock is 
updated by the GC, typically after reference processing has completed.

Webrev: http://cr.openjdk.java.net/~pliden/8191859/webrev.0/
Bug: https://bugs.openjdk.java.net/browse/JDK-8191859

/Per


More information about the core-libs-dev mailing list