On Friday 08 July 2011 22:41:54 Paul Davis wrote:
On Fri, Jul 8, 2011 at 3:53 PM, Fons Adriaensen
<fons(a)linuxaudio.org> wrote:
- You can use all 2^n elements, there is no
ambiguity between
full and empty.
so what does it mean when wr_index == rd_index?
Empty for reading. Lots of space for writing.
Its much more interesting to see what happens when the indezes cross the 2^32
or 2^64 mark, then the write-index will be smaller then the read-index untill
the read-index catches up. But as far as I see currently, this wouldn't be a
problem either. The writer only has to stop writing when its at read_ptr - 1.
Maybe I don't understand it all, but with fons approach I think it only works
when the buffer-sizes are 2^n. When you have a buffer of say 5 elements, doing
the modulo at the element-access and not at the read/write-head-movement, this
will jump every now and then, right?
Have fun,
Arnold