On Mon, 2012-02-27 at 20:01 -0500, Paul Coccoli wrote:
> On Mon, Feb 27, 2012 at 8:04 AM, Fons Adriaensen <[email protected]> wrote:
> > On Mon, Feb 27, 2012 at 09:59:19AM +0100, Nick Copeland wrote:
> >
> >> Both of these methods are affectively the same, what you are trying to do 
> >> is provide
> >> a method that the low prio thread is responsible for both malloc and free.
> >
> > That's a nice method, it effectively uses the LFQ to 'send back' an item 
> > after
> > use by the recipient. It depends on the particular implementation of the 
> > queue,
> > you need one that allows to read one (or more if necessary) items without 
> > moving
> > the read pointer - that should be done only after the data has been used 
> > since
> > it signals that the data can be freed.
> >
> > The alternative is to make this explicit, by having two pairs of indices
> > operate on the same buffer:
> [SNIP]
> 
> Why not just use 2 ringbuffers: one to send pointers to the RT thread,
> and a second to send them back to the low prio thread (so it can free
> them).  You probably need a semaphore for the return ringbuffer, but
> that should be RT-safe.

This is exactly what I do in plugins (e.g. LV2 eg-sampler) to load
samples and such when the command to do so comes in the audio thread.
Works well.

-dr


_______________________________________________
Linux-audio-dev mailing list
[email protected]
http://lists.linuxaudio.org/listinfo/linux-audio-dev

Reply via email to