On 05/16/2011 06:41 PM, Roger wrote:
What I was doing was periodically reopening the shared memory in processes that were reading only. So if another process removed and recreated it, it would eventually find the new copy. Is this a sensible way to do it? Is there a function to test whether the memory has been removed?
The only reason I was recreating the shared memory was to ensure a cleanly initialised empty space. Perhaps I should turf the whole recreating process and go with a clearing process instead. That should be fine once what I'm sharing is fixed. But during development it can change, and I recall the programs crashing if they open an old file and try to read a variable which wasn't there in the old version.
I'm interested in this too. I'm trying to come up with a system that works well where I can have some 'viewer' apps that run persistently with open windows to display some simple data structures from shared memory, almost like a debugger. I would like to be able to kill and restart the apps that generate the data freely. However, I think it's reasonable to fail if the representation changes. I don't want to go down the road of defining a formal schema or anything. :-) - Marsh