From 9ac13ec941933c32849c2284b5d79ef608023a56 Mon Sep 17 00:00:00 2001 From: Nicolas Pitre Date: Wed, 11 Oct 2006 11:49:15 -0400 Subject: atomic write for sideband remote messages It has been a few times that I ended up with such a confusing display: |remote: Generating pack... |remote: Done counting 17 objects. |remote: Result has 9 objects. |remote: Deltifying 9 objects. |remote: 100% (9/9) done |remote: Unpacking 9 objects |Total 9, written 9 (delta 8), reused 0 (delta 0) | 100% (9/9) done The confusion can be avoided in most cases by writing the remote message in one go to prevent interleacing with local messages. The buffer declaration has been moved inside recv_sideband() to avoid extra string copies. Signed-off-by: Nicolas Pitre Signed-off-by: Junio C Hamano --- fetch-clone.c | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) (limited to 'fetch-clone.c') diff --git a/fetch-clone.c b/fetch-clone.c index b632ca043..76b99afcd 100644 --- a/fetch-clone.c +++ b/fetch-clone.c @@ -115,12 +115,10 @@ static pid_t setup_sideband(int sideband, const char *me, int fd[2], int xd[2]) die("%s: unable to fork off sideband demultiplexer", me); if (!side_pid) { /* subprocess */ - char buf[LARGE_PACKET_MAX]; - close(fd[0]); if (xd[0] != xd[1]) close(xd[1]); - if (recv_sideband(me, xd[0], fd[1], 2, buf, sizeof(buf))) + if (recv_sideband(me, xd[0], fd[1], 2)) exit(1); exit(0); } -- cgit v1.2.1