On 04/09/2016 09:03 AM, Vitaly Davidovich wrote:
Just to confirm - opaque is also a compiler fence right? C++ relaxed doesn't
require compiler fence, but it sounds like opaque does.  Would be good to
clarify this, unless "program order" is the way you want to do that.


"Program order" normally requires a compiler fence.
Most people don't know what a compiler fence is though, and
it is not especially easy to define. So I don't think this would
help.

-Doug


On Saturday, April 9, 2016, Doug Lea <d...@cs.oswego.edu
<mailto:d...@cs.oswego.edu>> wrote:

    On 04/08/2016 02:39 PM, Hans Boehm wrote:

        My prior impression was that Opaque was intended to be similar to a C++
        memory_order_relaxed access to a variable that is declared as both 
atomic
        and volatile, with the unordered interpretation of C++ "volatile".


    Yes. This is awkward to spell out in detail, but surely there is
    some way to say it that is more illuminating than confusing.
    Especially since the implementation on all known processors
    is straightforward -- reading/writing (all bits atomically) in program 
order.

    -Doug




--
Sent from my phone

Reply via email to