On Mon, 27 Feb 2012 20:01:18 -0500
Paul Coccoli <pcoccoli(a)gmail.com> wrote:
  On Mon, Feb 27, 2012 at 8:04 AM, Fons Adriaensen
 <fons(a)linuxaudio.org> 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. 
That's what I thought... would be better for someone who is new to real
time threads and memory allocation... and is what I decided on... minus
the semaphore.
So why is a semaphore needed? If the RT thread only sends an item back
when it absolutely no longer will use it?
James.
  _______________________________________________
 Linux-audio-dev mailing list
 Linux-audio-dev(a)lists.linuxaudio.org
 
http://lists.linuxaudio.org/listinfo/linux-audio-dev