Oh, thank you Doug for your patience! Seems like now it is clear for me.<div><br></div><div>Now I can see the most confusing part for me was  about "preceeding stores can't be reordered". Primary </div><div>I do not understand does term "reordering" here is about "instruction reordering" only, or it is about instruction </div>
<div>effect _visibility_ reordering. I mean that stores can be issues in one order, but I can see their effects in</div><div>different order due to some complex mechanics inside memory cache hierarchy. Usually JMM uses term </div>
<div>reordering only in discussions and examples, not in formal definitions, so I have no feeling of "default" meaning</div><div>for reordering in this context... May be it makes sense to clarify javadocs about this? </div>
<div><br></div><div><br></div><div><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 09/30/11 11:18, Ruslan Cheremin wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
I still do not catch it. As far as I see we have 2 question about the code:<br>
</blockquote>
<br>
These are still good questions, because they have no direct answers in JLS.<br>
But because they don't, you need to use other existing information to decode.<br>
One more try:<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<br>
1) Will lazySet write actually happens in some finite time?<br>
</blockquote>
<br>
The most you can say from the spec is that it will be written<br>
no later than at the point that the process must write anything<br>
else in the Synchronization Order, if such a point exists.<br>
However, independently of the spec, we know that so long as<br>
any process makes progress,  only a finite number of writes<br>
can be delayed. So, yes.<br>
<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
2) If it happens (== we see spin-wait loop finished) -- does it mean,<br>
     what all writes preceeding lazySet are also done, commited, _and visible_<br>
to thread 2,<br>
     which finished spin-wait loop?<br>
</blockquote>
<br>
Yes, although technically, you cannot show this by reference<br>
to the Synchronization Order in the current JLS. A fully<br>
integrated account would be along the lines of that for<br>
the (non-existent) order{Writes,Accesses} Fences in<br>
<a href="http://gee.cs.oswego.edu/dl/jsr166/dist/docs/java/util/concurrent/atomic/Fences.html" target="_blank">http://gee.cs.oswego.edu/dl/<u></u>jsr166/dist/docs/java/util/<u></u>concurrent/atomic/Fences.html</a><br>
<br>
-Doug<br>
<br>
</blockquote></div>