On 19/12/2015 13:07, Claes Redestad wrote:
Hi,
initializing volatile fields to their default value has a well-known
performance penalty, and removing these should typically be safe. This
patch addresses java.base.
There are however some corner cases that we need to check for, see
examples and discussion in
http://cs.oswego.edu/pipermail/concurrency-interest/2015-December/014767.html
When meticulously going through and checking each usage for odd
pattern like this I accidentally did a bit of extra cleanup, mostly
addressing a number of cases where the volatile field was being read
twice. Sorry!
Bug: https://bugs.openjdk.java.net/browse/JDK-8145680
Webrev: http://cr.openjdk.java.net/~redestad/8145680/webrev.01/
I skimmed through the webrev and it looks okay. A few classes are
arguably less-readable now due to the double negatives (!invalid).
I see the changes to URI have been split out to a separate issue because
it does other clean-ups. In this case it might be better to keep
defineString and it return the String rather than calling toString and
needing to explain the side effect in several places.
-Alan.