<p dir="ltr">This is trying to relate reads and writes that synchronize with each other, it says nothing about independent reads and independent writes.  I'd like finalization to be spec'd as all independent reads and writes happen after constructor's independent reads and writes.  This is perhaps another way to state the temporal nature, but JMM-ism aside, I firmly believe that's people's expectation.</p>
<p dir="ltr">sent from my phone</p>
<div class="gmail_quote">On Dec 9, 2015 9:54 PM, "Justin Sampson" <<a href="mailto:jsampson@guidewire.com">jsampson@guidewire.com</a>> wrote:<br type="attribution"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Vitaly Davidovich wrote:<br>
<br>
> I've seen happens-before defined as writes happen before reads and<br>
> say nothing about reads before writes or reads before reads. All<br>
> I'm saying is that full clarity is warranted so we don't need to<br>
> have debates like this.<br>
<br>
"A set of actions A is happens-before consistent if for all reads r<br>
in A, where W(r) is the write action seen by r, it is not the case<br>
that either hb(r, W(r)) or that there exists a write w in A such<br>
that w.v = r.v and hb(W(r), w) and hb(w, r)."<br>
<br>
<a href="https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4.5" rel="noreferrer" target="_blank">https://docs.oracle.com/javase/specs/jls/se8/html/jls-17.html#jls-17.4.5</a><br>
<br>
The prohibition of reads seeing writes that occur later in the<br>
happens-before ordering is the very first clause ("it is not the<br>
case that either hb(r, W(r)) or ...") of the definition of<br>
happens-before consistency.<br>
<br>
Cheers,<br>
Justin<br>
</blockquote></div>