On Fri, Mar 4, 2016 at 2:21 PM, Kjetil Matheussen <k.s.matheussen@gmail.com> wrote:


On Fri, Mar 4, 2016 at 2:12 PM, Paul Davis <paul@linuxaudiosystems.com> wrote:
kjetil, thanks for the patch.

however, the problem with fixing this problem has never been identifying where to put the barriers, it has been adding them in a portable way. __atomic_* are, as far as i can tell, gcc-specific. am i wrong about that?


I think you're almost correct. Clang supports them too,  so __atomic_* functions are portable across
linux/osx/mingw for the three major platforms.


Regarding the microsoft c compiler, which I don't think supports the __atomic_ functions, the "volatile" keyword actually
works by default as it should: http://preshing.com/20141024/my-multicore-talk-at-cppcon-2014/  , so in order to support
the microsoft c compiler, it's just a matter of creating dummy-macros for the __atomic_-functions.