public inbox for cygwin@cygwin.com
 help / color / mirror / Atom feed
* No support for sharing unnamed semaphores between processes through shared memory?
@ 2012-09-10 19:17 Matt Sexton
  2012-09-25 21:20 ` Linda Walsh
  2012-10-09 13:54 ` Corinna Vinschen
  0 siblings, 2 replies; 5+ messages in thread
From: Matt Sexton @ 2012-09-10 19:17 UTC (permalink / raw)
  To: cygwin

Hello,

I am attempting to port to Cygwin an application that synchronizes
between processes using unnamed semaphores in shared memory.  Both
processes have mapped the shared memory region, one process
initializes the semaphore, and both processes perform operations on
it.  Under Cygwin, the second process, which does not initialize the
semaphore, gets an EINVAL error when calling sem_post() on that
semaphore.  (There is no race condition between the initialization and
the posting of the semaphore by the different processes.)

Looking in /usr/include/semaphore.h, it appears that a sem_t is
typedef'ed as pointer to a struct.

In winsup/cygwin/thread.cc, semaphore::init appears to make the value
of the semaphore the result of a new operation.  This step would seem
to preclude the sharing the of the semaphore between processes, since
the pointer is only valid in the address space of the first process.

Is there no support for sharing unnamed semaphores between processes
using shared memory?  The man page under Linux documents this use case
and does seem to imply that it is part of the POSIX standard.

If the use case is not supported, what is the recommended work-around?
 Named semaphores?

Thank you,
Matt

--
Problem reports:       http://cygwin.com/problems.html
FAQ:                   http://cygwin.com/faq/
Documentation:         http://cygwin.com/docs.html
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2012-10-09 13:54 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-10 19:17 No support for sharing unnamed semaphores between processes through shared memory? Matt Sexton
2012-09-25 21:20 ` Linda Walsh
2012-09-27 10:26   ` Gregory M. Turner
2012-10-09 13:54   ` Corinna Vinschen
2012-10-09 13:54 ` Corinna Vinschen

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).