2011/11/4 Paul Davis <paul(a)linuxaudiosystems.com>om>:
On Fri, Nov 4, 2011 at 1:16 PM, Emanuel Rumpf
<xbran(a)web.de> wrote:
While this is restrictive, in the way you
mention, I think it's a
welcome simplification
( compared to implementing a real-time-capable-linked-list + other
rt-structures ),
if your use-case doesn't require direct calls to the list (for any reason),
then you could request insert/remove/update operations through the
rt-ring-buffer.
you can't perform insert/remove/update operations on a "normal" linked
list in an RT thread.
Right. What I meant is: to enqueue the required operations in a
realtime-queue (ringbuffer),
then read that queue from a non-rt thread in order to update the non-rt list.
This implies OTOH, that list-actions take place with a delay (at least
not instantly), but
may work in some situations, e.g. recording an audio stream.
@ Iain and others
Before you start to implement your own, which can take as much time as
your whole project ...
Here is a list of some libs I found, that implement lock-free
structures, STM, etc.
http://wiki.linuxaudio.org/wiki/programming_libraries#lockfree_non-blocking…
If anything is missing, let me know, or edit yourself.
--
E.R.