Matthew Woehlke writes:
> Andrew Haley wrote:
> > Michael Eager writes:
> >> It can also be used to share data between threads, but it becomes
> >> problematic if accesses are not atomic. It's reasonable to use a
> >> shared volatile sig_atomic_t to communicate between threads, to say
> >> "I'm done" or "Start processing".
> >
> > Is that really safe, though? There's nothing to stop the machine from
> > reordering memory writes, even if the compiler doesn't.
>
> ...my understanding is that is exactly what 'fence' is for.
That's my understanding too. Here, we're really talking about non-x86
processors which have much weaker ordering guarantees.