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.