Утверждается, что шаренные данные не следует делать волатильными:
http://w3imagis.imag.fr/Membres/Eric.Ferley/pthreadsFAQ.html#Q56The
> Q56: Why don't I need to declare shared variables VOLATILE?
> system CANNOT require you to use volatile on shared variables for correct behavior, because POSIX requires only that the POSIX synchronization functions are necessary. ... if your program breaks because you didn't use volatile, that's a SYSTEM bug.
Кто-нибудь может прокомментировать?