I have implemented two applications that share data using the POSIX shared memory API (i.e. shm_open
). One process updates data stored in the shared memory segment
Might as well make this an answer.
You can use sem_init with pshared
true to create a POSIX semaphore in your shared memory space. I have used this successfully in the past.
As for whether this is faster or slower than a shared mutex and condition variable, only profiling can tell you. On Linux I suspect they are all pretty similar since they rely on the "futex" machinery.