
2012/4/26 Ion GaztaƱaga <igaztanaga@gmail.com> Sorry, but in your test the reader deletes mutexes in use and creates them
again with the same name. This means that the writer and the reader don't shared the same mutex!
Ah, I misunderstood the behavior of ::remove(). I think I wrongly assumed the file would not be removed if the mutex and shared_memory_object was in use. I am not sure what lead me to think that, as logically, the behavior you describe makes sense. Humm... if I remove all the ::remove() calls (even for the shared_memory_object) from both the reader and writer code, this works without any changes to interprocess, and I can safely start and stop either reader or writer process at any point, in any order. That's the behavior I want. I suppose I'll need to resort to some other kind of mechanism for ensuring the memory mapped files (shared memory and mutexes) are removed should all processes using these objects stop running. Even with your suggested changes, I haven't figured out how to remove the files safely. Many thanks for the help here, Ion.