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

Re: [PATCH] Use line buffering for standard output

From
Linus Torvalds <torvalds@linux-foundation.org>
Date
Aug 3, 2008, 21:46 UTC
Message-ID
<alpine.LFD.1.10.0808031444270.3668@nehalem.linux-foundation.org>
In-Reply-To
<1217798768-18021-1-git-send-email-mail@cup.kalibalik.dk>
On Sun, 3 Aug 2008, Anders Melchiorsen wrote:
Show 7 quoted lines
>
> Normally, stdout is fully buffered, unless it refers to a terminal
> device. This gives problems when fork() is in play: the buffer is
> cloned and output appears twice.
> 
> By always setting stdout to line buffering, we make the output work
> identically for all output devices.
Please don't.
This is a huge peformance issue for things like
	git log -p > file
where we really want it to be fully buffered.

So please just find the place where we do a fork() without flushing pending output...

(We really shouldn't have all that many "fork()" calls left, I thought - the Windows stuff means that most of it should be abstracted away. So it's not like we're talking about hundreds of sites, there should be just a couple).

		Linus
Previous: Junio C HamanoNext: Anders Melchiorsen
Message 3 of 8 in “Use line buffering for standard output”
  1. Use line buffering for standard outputAnders Melchiorsen, Aug 3, 2008
  2. Junio C HamanoAug 3, 2008
  3. Linus TorvaldsAug 3, 2008
  4. Anders MelchiorsenAug 3, 2008
  5. Junio C HamanoAug 4, 2008
  6. Flush output in start_asyncAnders Melchiorsen, Aug 4, 2008
  7. Linus TorvaldsAug 4, 2008
  8. Add output flushing before fork()Anders Melchiorsen, Aug 4, 2008

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.