Thread (15 messages) 15 messages, 4 authors, 2017-11-01

Re: [PATCH 0/3] mingw: introduce a way to avoid std handle inheritance

flat view

From: Johannes Schindelin <hidden>
Date: 2017-10-31 17:12:56

Hi Jonathan,

On Mon, 30 Oct 2017, Jonathan Nieder wrote:
Johannes Schindelin wrote:
quoted
Particularly when calling Git from applications, such as Visual Studio,
it is important that stdin/stdout/stderr are closed properly. However,
when spawning processes on Windows, those handles must be marked as
inheritable if we want to use them, but that flag is a global flag and
may very well be used by other spawned processes which then do not know
to close those handles.

As a workaround, introduce handling for the environment variables
GIT_REDIRECT_STD* to read/write from/to named pipes instead
(conceptually similar to Unix sockets, for you Linux folks). These do
not need to be marked as inheritable, as the process can simply open the
named pipe. No global flags. No problems.

This feature was introduced as an experimental feature into Git for
Windows v2.11.0(2) and has been tested ever since. I feel it is
well-tested enough that it can be integrated into core Git.
Can this rationale go in the commit messages?
I thought I had done exactly that in 1/3...
Actually I wouldn't mind if this were all a single patch, with such a
rationale in the commit message.
Quite honestly, I'd rather not. There is a logical structure to the three
patches (and I left a Duck in 3/3, to see who bothers to actually read
what I wrote).

The redirection, for example, is a very special thing that I would like to
keep in a separate commit, for clarity.
The patches' concept seems sane.  I haven't looked closely at the
implementation.
Thanks,
Dscho
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help