Date: Thu, 22 Oct 2009 16:08:11 -0400 From: Andrew Gallatin <gallatin@cs.duke.edu> To: freebsd-hackers@freebsd.org Cc: Christian Bell <christian@myri.com> Subject: semaphores between processes Message-ID: <4AE0BBAB.3040807@cs.duke.edu>
next in thread | raw e-mail | index | archive | help
Hi, We're designing some software which has to lock access to shared memory pages between several processes, and has to run on Linux, Solaris, and FreeBSD. We were planning to have the lock be a pthread_mutex_t residing in the shared memory page. This works well on Linux and Solaris, but FreeBSD (at least 7-stable) does not support PTHREAD_PROCESS_SHARED mutexes. We then moved on to posix semaphores. Using sem_wait/sem_post with the sem_t residing in a shared page seems to work on all 3 platforms. However, the FreeBSD (7-stable) man page for sem_init(3) has this scary text regarding the pshared value: The sem_init() function initializes the unnamed semaphore pointed to by sem to have the value value. A non-zero value for pshared specifies a shared semaphore that can be used by multiple processes, which this implementation is not capable of. Is this text obsolete? Or is my test just "getting lucky"? Is there recommended way to do this? Thanks, Drew
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4AE0BBAB.3040807>