[cpp-threads] modes, pass 2

Doug Lea dl at cs.oswego.edu
Wed May 11 16:19:36 BST 2005


> 
> "consumer spins on the flag until it is reset" implies load-CRO->
> branch thing. Placing isync after that loop has the effect of 
> load.acq for flag load in Itanic speak. Without that control 
> dependency (note that it orders subsequent stores on its own even 
> without isync), isync doesn't order anything at all since it 
> doesn't prevent sinking (apart from op governing branching 
> preceding isync): <quote source=BOOK2> The isync instruction may 
> complete before storage accesses associated with instructions 
> preceding the isync instruction have been performed."
> 
> Now please tell me what I got wrong. ;-)
> 

Thanks very much! I finally understand the source of the
apparently inconsistent answers I've gotten about this --
some people assume you already have a control dependency
and some don't. I changed this accordingly on cookbook page.

-Doug




More information about the cpp-threads mailing list