Thanks guys, that's very helpful. I'll no doubt have further questions once
I get to prototyping that part. Paul, if you could let me know where to
look for examples in the ardour code that would be cool too.
thanks
iain
On Wed, Nov 2, 2011 at 10:45 AM, Jeff Koftinoff <jeffk(a)jdkoftinoff.com>wrote;wrote:
A good starting point for reading is on Software
Transactional Memory
(STM):
http://en.wikipedia.org/wiki/Software_transactional_memory
Jeff
On 2011-11-02, at 10:40 AM, Paul Davis wrote:
On Wed, Nov 2, 2011 at 1:34 PM, Iain Duncan
<iainduncanlists(a)gmail.com>
wrote:
> Does that sound more feasible? BTW, excuse my ignorance, but what is
RCU?
Yes, that's certainly feasible. RCU = Read-Copy-Update is a software
pattern for dealing with situations where you need to update a complex
data structure while it is in use. The general approach is to make a
copy, modify the copy, and the atomically (normally) swap a pointer to
the original for a pointer to the new one. somehow you have to clean
up the old one.
you won't find this written up in any texts on programming, i think.
its in wide use in the linux kernel, and there have been attempts to
create some general purpose user space libraries that do it too. my
own sense is that almost every implementation of RCU will end up being
incredibly context (app) dependent. we use it a lot in ardour. its
quite complex.
_______________________________________________
Linux-audio-dev mailing list
Linux-audio-dev(a)lists.linuxaudio.org
http://lists.linuxaudio.org/listinfo/linux-audio-dev