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

Re: [RFH] Flush progress message buffer in display().

From
Junio C Hamano <gitster@pobox.com>
Date
Nov 19, 2007, 22:09 UTC
Message-ID
<7vk5odnazh.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<alpine.LFD.0.99999.0711191549510.19105@xanadu.home>
Nicolas Pitre <nico@cam.org> writes:
Show 12 quoted lines
> On Mon, 19 Nov 2007, Junio C Hamano wrote:
>
>> The standard error stream is not "fully buffered":
>> 
>>     http://www.opengroup.org/onlinepubs/000095399/functions/xsh_chap02_05.html#tag_02_05
>> 
>> Not "fully buffered" means either "unbuffered" or "line
>> buffered".  Because the progress display does not terminate its
>> line, it means that the additional fflush(stderr) you added are
>> needed if the stream is line buffered (still conforming).
>
> Maybe stdio on Linux considers \r as a line termination.
Or totally unbufferred.  Running strace on this:
        #include <stdio.h>
        int
        main(int ac, char **av)
        {
                fprintf(stderr, "foo");
                fprintf(stderr, "bar");
                return 0;
        }

will tell you. I bet you will see two write(2) of 3 bytes each.

> Flushing stderr should not hurt anyway.
True, especially if the rate is limited, which it is.
Previous: Nicolas Pitre
Message 4 of 4 in “[RFH] Flush progress message buffer in display().”
  1. Johannes SixtNov 19, 2007
  2. Junio C HamanoNov 19, 2007
  3. Nicolas PitreNov 19, 2007
  4. Junio C HamanoNov 19, 2007

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.