summaryrefslogtreecommitdiff
path: root/builtin/init-db.c
diff options
context:
space:
mode:
authorLibravatar Jonathan Nieder <jrnieder@gmail.com>2011-04-20 05:40:05 -0500
committerLibravatar Junio C Hamano <gitster@pobox.com>2011-04-20 10:09:26 -0700
commita111eb7808bfdb90286e54b9ccdaea4f3bec3102 (patch)
tree8014a5169540c9e9d7f6332a1cc7a569726bfd5f /builtin/init-db.c
parenttests: check error message from run_command (diff)
downloadtgif-a111eb7808bfdb90286e54b9ccdaea4f3bec3102.tar.xz
run-command: handle short writes and EINTR in die_child
If start_command fails after forking and before exec finishes, there is not much use in noticing an I/O error on top of that. finish_command will notice that the child exited with nonzero status anyway. So as noted in v1.7.0.3~20^2 (run-command.c: fix build warnings on Ubuntu, 2010-01-30) and v1.7.5-rc0~29^2 (2011-03-16), it is safe to ignore errors from write in this codepath. Even so, the result from write contains useful information: it tells us if the write was cancelled by a signal (EINTR) or was only partially completed (e.g., when writing to an almost-full pipe). Let's use write_in_full to loop until the desired number of bytes have been written (still ignoring errors if that fails). As a happy side effect, the assignment to a dummy variable to appease gcc -D_FORTIFY_SOURCE is no longer needed. xwrite and write_in_full check the return value from write(2). Noticed with gcc -Wunused-but-set-variable. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'builtin/init-db.c')
0 files changed, 0 insertions, 0 deletions