
Hi, As win32 version of shared mutexes are based "spin and wait", which leads to poor performance and priority inversions*. I have an idea about simulate PTHREAD_PROCESS_SHARED with DuplicateHandle() under win32. 1. anonymous mutex keeps the process id (e.g. hprocess) where CreateMutex called and HANDLE of mutex (e.g. hmutex). 2. if another process want to shared this mutex, it call DuplicateHandle() with hSourceProcessHandle=hprocess and hSourceHandle=hmutex, and return hmutex_dup. 3. the process use hmutex_dup to lock/unlock/try_lock/timed_lock 4. we can optimize performance with cache hmutex_dup. and a specialized scoped_lock required for anonymous mutex under windows which didn't use handle directly, but DuplicateHandle. I'll try this when I'm free (I have to install a windows box first) and compare it with "spin and wait". * reference from "Future Improvements" of boost::interprocess, not test myself. Best Regards, Wilbur Lang