>> no one can write a test case which fails when >> memory barriers are missing in a ringbuffer implementation. > > That's an interesting assertion. It's kind of tempting to write some > buggy circular buffers and test that assumption on common hardware.
in fact, testing is not the best approach for verifying lock-free data structures: an implementation may work for years, if a certain condition is never triggered. the only reasonable way to ensure the correctness is a formal proof. unfortunately, most publications assume a sequencially consistent memory model and sometimes even avoid dealing with the ABA problem. fortunately the atomics of c++0x/c1x will make it much clearer (and more robust as the memory order argument to the atomic functions defaults to sequencial consistency) cheers, tim _______________________________________________ Linux-audio-dev mailing list Linux-audio-dev@lists.linuxaudio.org http://lists.linuxaudio.org/listinfo/linux-audio-dev