On Fri, Mar 4, 2016 at 1:22 PM, Kjetil Matheussen <k.s.matheussen@gmail.com> wrote:
You are right. There was even a discussion about how broken it was
in 2008, and it was fixed, at least in practice.

Theoretically (and not unlikely also in practice), it seems to be still broken.
This can also confirmed by compiling with -fsanitize=thread:


I made a quick fix: http://folk.uio.no/ksvalast/ringbuffer.diff

It can probably be optimized by relaxing some of the barrier strenghtnessness though,
but it probably makes no practical difference in execution time.
Perhaps apply this to jack, at least to avoid uncertainty about whether it will really
always work?