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. Andrew.