git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Johannes Schindelin <johannes.schindelin@gmx.de>
Date
Oct 31, 2017, 17:12 UTC
Message-ID
<alpine.DEB.2.21.1.1710311809570.6482@virtualbox>
In-Reply-To
<20171030205522.hur26cumwusk7wwa@aiede.mtv.corp.google.com>
Hi Jonathan,
On Mon, 30 Oct 2017, Jonathan Nieder wrote:
Show 20 quoted lines
> Johannes Schindelin wrote:
> 
> > 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

Previous: Junio C HamanoNext: Jonathan Nieder
Message 15 of 22 in “mingw: introduce a way to avoid std handle inheritance”
  1. 0/3 mingw: introduce a way to avoid std handle inheritanceJohannes Schindelin, Oct 30, 2017
  2. 1/3 mingw: add experimental feature to redirect standard handlesJohannes Schindelin, Oct 30, 2017
  3. 2/3 mingw: special-case GIT_REDIRECT_STDERR=2>&1Johannes Schindelin, Oct 30, 2017
  4. 3/3 mingw: document the experimental standard handle redirectionJohannes Schindelin, Oct 30, 2017
  5. Eric SunshineOct 30, 2017
  6. Johannes SchindelinOct 31, 2017
  7. Junio C HamanoNov 1, 2017
  8. Johannes SchindelinNov 1, 2017
  9. Junio C HamanoNov 2, 2017
  10. Johannes SchindelinNov 2, 2017
  11. Junio C HamanoNov 3, 2017
  12. Johannes SchindelinNov 3, 2017
  13. Jonathan NiederOct 30, 2017
  14. Junio C HamanoOct 31, 2017
  15. Johannes SchindelinOct 31, 2017
  16. Jonathan NiederOct 31, 2017
  17. Johannes SchindelinNov 1, 2017
  18. Stefan BellerNov 1, 2017
  19. 0/3 mingw: introduce a way to avoid std handle inheritanceJohannes Schindelin, Nov 1, 2017
  20. 1/3 mingw: add experimental feature to redirect standard handlesJohannes Schindelin, Nov 1, 2017
  21. 2/3 mingw: optionally redirect stderr/stdout via the same handleJohannes Schindelin, Nov 1, 2017
  22. 3/3 mingw: document the standard handle redirectionJohannes Schindelin, Nov 1, 2017

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.