git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Eric Wong <e@80x24.org>
To: Jeff King <peff@peff.net>
Cc: Junio C Hamano <gitster@pobox.com>, git@vger.kernel.org
Subject: Re: What's cooking in git.git (Jul 2016, #03; Fri, 8)
Date: Sun, 10 Jul 2016 03:47:36 +0000	[thread overview]
Message-ID: <20160710034736.GA19151@dcvr.yhbt.net> (raw)
In-Reply-To: <20160710025232.GA4666@sigill.intra.peff.net>

Jeff King <peff@peff.net> wrote:
> On Sat, Jul 09, 2016 at 11:45:18PM +0000, Eric Wong wrote:
> > Junio C Hamano <gitster@pobox.com> wrote:
> > > * sb/submodule-parallel-fetch (2016-06-27) 2 commits
> > >   (merged to 'next' on 2016-07-06 at de5fd35)
> > >  + xwrite: poll on non-blocking FDs
> > >  + xread: retry after poll on EAGAIN/EWOULDBLOCK

> > Any thoughts on my cleanup 3/2 patch for this series?
> > ("hoist out io_wait function for xread and xwrite")
> > https://public-inbox.org/git/20160627201311.GA7039@dcvr.yhbt.net/raw
> > 
> > Jeff liked it:
> > https://public-inbox.org/git/20160627214947.GA17149@sigill.intra.peff.net/
> 
> I did (and do) like it. I think it may have simply gotten lost in the
> mass of "should we handle EAGAIN from getdelim()" patches I sent (to
> which I concluded "probably not").
> 
> There was one minor improvement I suggested[1] (and which you seemed to
> like), which is to push the errno check into the function. That wasn't
> expressed in patch form, though, so I've included below a version of
> your patch with my suggestion squashed in.

Yes, I'm fine with either, but I'm slightly thrown off by
a function relying on errno being set by the caller, even if it
is errno.  So maybe localizing it is better (see below)

> I didn't include the test I mentioned in [2]. I think the potential for
> portability and raciness problems make it probably not worth the
> trouble.

Agreed.

> ---
> Since both conditionals just call "continue", you could actually fold
> them into a single if() in each caller, but I think it's easier to
> follow as two separate ones.
> 
> You could actually fold the t

Copy-paste error?

> +static int handle_nonblock(int fd, short poll_events)
> +{
> +	struct pollfd pfd;
> +
> +	if (errno != EAGAIN && errno != EWOULDBLOCK)
> +		return 0;
> +

I prefer localizing errno and having the caller pass it
explicitly:

static int handle_nonblock(int fd, short poll_events, int err)
{
	struct pollfd pfd;

	if (err != EAGAIN && err != EWOULDBLOCK)
		return 0;

And the callers would pass errno:

	if (handle_nonblock(fd, POLLIN, errno))
		continue;

  reply	other threads:[~2016-07-10  3:47 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-07-08 22:59 What's cooking in git.git (Jul 2016, #03; Fri, 8) Junio C Hamano
2016-07-09 23:25 ` Eric Wong
2016-07-11 17:51   ` Junio C Hamano
2016-07-09 23:45 ` Eric Wong
2016-07-10  2:52   ` Jeff King
2016-07-10  3:47     ` Eric Wong [this message]
2016-07-10  4:45       ` Jeff King
2016-07-10  8:20         ` [PATCH 3/2] hoist out handle_nonblock function for xread and xwrite Eric Wong
2016-07-11  6:24 ` What's cooking in git.git (Jul 2016, #03; Fri, 8) Johannes Schindelin
2016-07-11 17:13   ` Junio C Hamano

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=20160710034736.GA19151@dcvr.yhbt.net \
    --to=e@80x24.org \
    --cc=git@vger.kernel.org \
    --cc=gitster@pobox.com \
    --cc=peff@peff.net \
    /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).