On Mon, Feb 27, 2012 at 8:43 PM, James Morris
<james(a)jwm-art.net> wrote:
On Mon, 27 Feb 2012 20:01:18 -0500
Paul Coccoli <pcoccoli(a)gmail.com> wrote:
[Mass snippage]
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?
I suppose the semaphore isn't strictly necessary, but I think it's an
easy way to tell the main thread that it has a message to process.
Although one that probably doesn't integrate well with most
main/non-RT threads.
For a main thread that's always rolling anyway you wouldn't use one.
The semaphore is to wake up a receiving thread that is *waiting* for a
message from the ringbuffer (e.g. it is a worker thread solely dedicated
to that)
-dr