acadia-newlib/winsup
Corinna Vinschen 4fc922b2c8 Cygwin: POSIX msg queues: Convert mqd_t to a descriptor
So far, the mqd_t type returned a pointer to an allocated
area under the hood.  The mutex and event objects attached
to the message queue were implemented as inheritable types.

As unfortunate side effect the HANDLEs to these objects
were inherited by exec'd child processes, even though all
other message queue properties are not inherted, per POSIX.

Fix this by converting an mqd_t to a descriptor, and create a
matching fhandler_mqueue object to handle various aspects of
the message queues inside the fhandler.  Especially, create the
IPC objects as non-inheritable and duplicate the HANDLEs as
part of the fixup_after_fork mechanism.

Drop using mmap and create the memory map with NT functions.
This allows to control duplication of handle and mapping in the
forked child process, without the requirement to regenerate the
map in the same spot.  It also allows to dup() the descriptor,
as on Linux, albeit this isn't implemented yet.

This patch is the first cut.  There's a bit more to do, like
moving more functionality from the POSIX functions into the
fhandler and making sure the mqd_t type can't be used in other
descriptor-related functions willy-nilly.

Signed-off-by: Corinna Vinschen <corinna@vinschen.de>
2021-05-21 13:43:24 +02:00
..
CVSChangeLogs.old
cygserver Cygwin: drop all generated autotools files 2021-04-29 11:16:38 +02:00
cygwin Cygwin: POSIX msg queues: Convert mqd_t to a descriptor 2021-05-21 13:43:24 +02:00
doc Cygwin: utils: chattr: Allow to clear all attributes with '='. 2021-05-21 12:56:59 +02:00
testsuite Cygwin: automake: change @INCLUDES@ to @AM_CPPFLAGS@ to avoid warnings 2021-04-29 11:28:14 +02:00
utils Cygwin: utils: chattr: Allow to clear all attributes with '='. 2021-05-21 12:56:59 +02:00
CONTRIBUTORS Cygwin: Add Ben Wijen to list of contributors 2021-01-18 12:01:19 +01:00
COPYING
COPYING.LIB
CYGWIN_LICENSE
Makefile.am Cygwin: Use automake (v5) 2021-04-27 16:49:56 +01:00
Makefile.am.common Cygwin: automake: change @INCLUDES@ to @AM_CPPFLAGS@ to avoid warnings 2021-04-29 11:28:14 +02:00
README
acinclude.m4 Cygwin: automake: change @INCLUDES@ to @AM_CPPFLAGS@ to avoid warnings 2021-04-29 11:28:14 +02:00
autogen.sh Cygwin: autogen.sh: Allow running from any directory 2021-05-06 10:56:20 +02:00
configure.ac Cygwin: Use automake (v5) 2021-04-27 16:49:56 +01:00

README

THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESSED OR
IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Cygwin documentation is available on the net at https://cygwin.com
You might especially be interested in

https://cygwin.com/faq/faq.html#faq.programming.building-cygwin