A Wait-Free Queue as Fast as Fetch-And-Add [pdf]
So I just recently learned how a rather simple ring buffer implementation is lock-free and doesn't even need primitives like CAS (although it does need memory barriers).<p>In spite of this, all the literature about lock-free queues that I see (including this one) is for some kind of linked structure.  Any reason for that?<p>I guess one big limitation of the ring buffer is that it only works for a single reader and single writer.  Although maybe you can work around that using CAS primitves...