git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Jeff King <peff@peff.net>
To: Ben Peart <peartben@gmail.com>
Cc: git@vger.kernel.org, gitster@pobox.com, benpeart@microsoft.com,
	christian.couder@gmail.com, larsxschneider@gmail.com
Subject: Re: [PATCH v5 3/8] convert: Split start_multi_file_filter into two separate functions
Date: Tue, 11 Apr 2017 12:16:17 -0400	[thread overview]
Message-ID: <20170411161617.fyu5pmzgplscoozz@sigill.intra.peff.net> (raw)
In-Reply-To: <20170407120354.17736-4-benpeart@microsoft.com>

On Fri, Apr 07, 2017 at 08:03:49AM -0400, Ben Peart wrote:

> @@ -642,7 +621,41 @@ static struct cmd2process *start_multi_file_filter(struct hashmap *hashmap, cons
>  done:
>  	sigchain_pop(SIGPIPE);
>  
> -	if (err || errno == EPIPE) {
> +	if (err || errno == EPIPE)
> +		err = err ? err : errno;
> +
> +	return err;
> +}

This isn't a new problem introduced by your patch, but this use of errno
seems funny to me. Specifically:

  1. Do we need to save errno before calling sigchain_pop()? It's making
     syscalls (though admittedly they are unlikely to fail).

  2. If err is 0, then nothing failed. Who would have set errno? Aren't
     we reading whatever cruft happened to be in errno before the
     function started?

     So I'm confused about what case would trigger on this errno check
     at all.

Also, I'm not quite sure what the return value of the function is
supposed to be; usually we'd use 0 for success and negative for errors.
But here we might return a negative value that we got from the packet_*
functions, or we might return EPIPE, which is positive. I don't think
it's a huge deal because the caller checks "if (err)", but perhaps it
should be "-errno" for consistency.

-Peff

  parent reply	other threads:[~2017-04-11 16:16 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-04-07 12:03 [PATCH v5 0/8] refactor the filter process code into a reusable module Ben Peart
2017-04-07 12:03 ` [PATCH v5 1/8] pkt-line: add packet_read_line_gently() Ben Peart
2017-04-09 19:34   ` Lars Schneider
2017-04-07 12:03 ` [PATCH v5 2/8] convert: move packet_write_list() into pkt-line as packet_writel() Ben Peart
2017-04-09 19:43   ` Lars Schneider
2017-04-07 12:03 ` [PATCH v5 3/8] convert: Split start_multi_file_filter into two separate functions Ben Peart
2017-04-09 19:56   ` Lars Schneider
2017-04-11 16:16   ` Jeff King [this message]
2017-04-11 19:29     ` Lars Schneider
2017-04-11 19:37       ` Jeff King
2017-04-11 20:01         ` Lars Schneider
2017-04-11 20:05           ` Jeff King
2017-04-20 17:27             ` Ben Peart
2017-04-07 12:03 ` [PATCH v5 4/8] convert: Separate generic structures and variables from the filter specific ones Ben Peart
2017-04-10 10:18   ` Lars Schneider
2017-04-17  3:31     ` Junio C Hamano
2017-04-18 16:38       ` Ben Peart
2017-04-19  1:23         ` Junio C Hamano
2017-04-20 17:24           ` Ben Peart
2017-04-07 12:03 ` [PATCH v5 5/8] convert: Update generic functions to only use generic data structures Ben Peart
2017-04-10 12:05   ` Lars Schneider
2017-04-07 12:03 ` [PATCH v5 6/8] convert: rename reusable sub-process functions Ben Peart
2017-04-10 12:11   ` Lars Schneider
2017-04-07 12:03 ` [PATCH v5 7/8] sub-process: move sub-process functions into separate files Ben Peart
2017-04-10 12:41   ` Lars Schneider
2017-04-07 12:03 ` [PATCH v5 8/8] convert: Update subprocess_read_status to not die on EOF Ben Peart
2017-04-10 12:48   ` Lars Schneider

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170411161617.fyu5pmzgplscoozz@sigill.intra.peff.net \
    --to=peff@peff.net \
    --cc=benpeart@microsoft.com \
    --cc=christian.couder@gmail.com \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=larsxschneider@gmail.com \
    --cc=peartben@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).