Re: [linux-audio-dev] lock-free ring buffer code

New Message Reply About this list Date view Thread view Subject view Author view Other groups

Subject: Re: [linux-audio-dev] lock-free ring buffer code
From: Kjetil S. Matheussen (k.s.matheussen_AT_notam02.no)
Date: Fri Apr 04 2003 - 15:44:18 EEST


On Thu, 3 Apr 2003, Tim Hockin wrote:

> > > i remember i have read a statement about a lock free ringbuffer
> > > implemented in C somewhere.
> >
> > courtesy of paul davis:
> >
> > you should use a lock free ringbuffer. we will be adding example code
> > to the example-clients directory soon. existing code is in ardour's
> > source base (for C++). the example code will be in
> > example-clients/capture_client.c.
> >
> > where ardour is ardour.sf.net. (i doubt there is anything hugely non-C in
> > the ringbuffer code proper).
>
> maybe it's just me, but I can't find said file...?
>

A lock free ringbuffer is not a big magic thing that take hours to make.
Its only two processes/threads/tasks/whatever sharing a ringbuffer. One of
them writes to the buffer and the other one reads. The one that reads,
stop to read if there isnt more data to read, and the writer stops to
write if the buffer is full. To make it lockfree the reader checks the
writers pointer (or some similar method) to find out wheter data is
available, and returns zeroes or false or something if data was not
available. Now go ahead and implement your own. :)

-- 


New Message Reply About this list Date view Thread view Subject view Author view Other groups

This archive was generated by hypermail 2b28 : Fri Apr 04 2003 - 15:54:01 EEST