<br>
<div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">Yes, that's certainly feasible. RCU = Read-Copy-Update is a software<br>
pattern for dealing with situations where you need to update a complex<br>
data structure while it is in use. The general approach is to make a<br>
copy, modify the copy, and the atomically (normally) swap a pointer to<br>
the original for a pointer to the new one. somehow you have to clean<br>
up the old one.<br>
<br>
you won't find this written up in any texts on programming, i think.<br>
its in wide use in the linux kernel, and there have been attempts to<br>
create some general purpose user space libraries that do it too. my<br>
own sense is that almost every implementation of RCU will end up being<br>
incredibly context (app) dependent. we use it a lot in ardour. its<br>
quite complex.<br></blockquote><div><br></div><div>Thanks Paul. I'm wondering if it might be easier to begin with to have my python side only read the shared data and send messages to the c engine for writes. Is there a relatively straightforward way to have a python process have read access to a block of memory that the c engine has full access to? Would this simplify the concurrency issues?</div>
<div><br></div><div>thanks for the tips everyone.</div><div>Iain</div><div> </div></div><br>