Guido Seifert
2013-01-26 10:38:58 UTC
Hi,
I have a minor problem with QSharedMemory. I do the necessary lock/unlock and attach/detach. Process 1 creates a shared memory segment, writes into it. Process 2 attaches, reads, and detaches. Process 1 detaches. This should destroy the shared memory segment, since no process references it anymore. All attach/detach/lock/unlock return always true.
The program runs for hrs and the code seems to be ok. Most of the time. But in my logs I see, that from time to time I get an error. The shared memory cannot be created, because it already exists. I can live with it, but it looks unclean to me. Could it be that there exists a race condition between the last detach() and a create()?
Maybe it would be nice to have a signal, which tells, when a segment really is destroyed? OR course, if such a signal is even possible.
Guido
I have a minor problem with QSharedMemory. I do the necessary lock/unlock and attach/detach. Process 1 creates a shared memory segment, writes into it. Process 2 attaches, reads, and detaches. Process 1 detaches. This should destroy the shared memory segment, since no process references it anymore. All attach/detach/lock/unlock return always true.
The program runs for hrs and the code seems to be ok. Most of the time. But in my logs I see, that from time to time I get an error. The shared memory cannot be created, because it already exists. I can live with it, but it looks unclean to me. Could it be that there exists a race condition between the last detach() and a create()?
Maybe it would be nice to have a signal, which tells, when a segment really is destroyed? OR course, if such a signal is even possible.
Guido