
This thread from Feb 2004 may be helpful: http://lists.apple.com/archives/Darwin-development/2004/Feb/ msg00146.html "Darwin's pthreads implementation does not support the optional "Thread Process-Shared Synchronization" functionality, so calling pthread_mutexattr_setpshared() with the PTHREAD_PROCESS_SHARED attribute will return EINVAL."
Darwin is the BSD-ish underbelly of Mac OS X, so it's not glibc but Apple supplied. I'm using Mac OS X version 10.4.5, so this is the most up to date darwin.
That's bad news, since all Shmem/Interprocess POSIX synchronization is based on that. In windows I try to emulate it with spins and waits but that's really a pain because you don't get mutex benefits like priority inversion. I'm afraid you won't be able to use it until I implement those missing functions for POSIX systems using the same rude mechanism. But I don't know how much time I need to do that, since those atomic functions would be compiler/platform dependent. Maybe some Boost libraries (like smart_ptr) provide some portable atomic operations. I'm afraid I won't have time soon to do this, since my priority is to write the fist Interprocess version, but I will try to look at this. Regards, Ion