<div dir="ltr"><br><div class="gmail_extra"><br><br><div class="gmail_quote">On Wed, Nov 27, 2013 at 11:26 AM, Doug Lea <span dir="ltr"><<a href="mailto:dl@cs.oswego.edu" target="_blank">dl@cs.oswego.edu</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div class="im"><span style="color:rgb(34,34,34)">Right. To summarize:</span><br></div>
<br>
* Programmers do not expect that even though final fields are specifically<br>
publication-safe, volatile fields are not always so.<br>
<br></blockquote><div><br></div><div style>Many programmers intuitively expect *all* fields assigned in constructors to be publication-safe....</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

* For various implementation reasons, JVMs arrange that<br>
volatile fields are publication safe anyway, at least in<br>
cases we know about.<br>
<br></blockquote><div><br></div><div style>... and at least on x86 with current JVMs, naive programmers are right - *all* fields are in practice publication-safe.</div><div style>... and I believe even some JDK classes depend on this being true ...</div>
<div style><br></div><div style>Which suggests we could actually expand final field guarantees to all fields in the spec.  What's the actual expected loss of performance on current hardware?</div><div> </div></div></div>
</div>