> On 13 Sep 2016, at 23:44, Junio C Hamano <gitster@xxxxxxxxx> wrote: > > Lars Schneider <larsxschneider@xxxxxxxxx> writes: > >>> On 13 Sep 2016, at 00:30, Junio C Hamano <gitster@xxxxxxxxx> wrote: >>> >>> larsxschneider@xxxxxxxxx writes: >>> >>>> From: Lars Schneider <larsxschneider@xxxxxxxxx> >>>> >>>> packet_flush() would die in case of a write error even though for some >>>> callers an error would be acceptable. Add packet_flush_gently() which >>>> writes a pkt-line flush packet and returns `0` for success and `-1` for >>>> failure. >>>> ... >>>> +int packet_flush_gently(int fd) >>>> +{ >>>> + packet_trace("0000", 4, 1); >>>> + if (write_in_full(fd, "0000", 4) == 4) >>>> + return 0; >>>> + error("flush packet write failed"); >>>> + return -1; >>> >>> It is more idiomatic to do >>> >>> return error(...); >>> >>> but more importantly, does the caller even want an error message >>> unconditionally printed here? >>> >>> I suspect that it is a strong sign that the caller wants to be in >>> control of when and what error message is produced; otherwise it >>> wouldn't be calling the _gently() variant, no? >> >> Agreed! > > I am also OK with the current form, too. Those who need to enhance > it to packet_flush_gently(int fd, int quiet) can come later. "caller wants to be in control [...] otherwise it wouldn't be calling the _gently() variant" convinced me. I would like to change it like this: trace_printf_key(&trace_packet, "flush packet write failed"); return -1; Objections? Thanks, Lars