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
