Re: [PATCH 1/4] run-command: add new check_command helper
- From
Jeff King <peff@peff.net>
- Date
- Apr 2, 2013, 05:14 UTC
- Message-ID
- <20130402051407.GA21906@sigill.intra.peff.net>
- In-Reply-To
- <CAMP44s3-DnBM7Tm_+igLN+c5MGrbJNXUBwcj1HvGCPEJEwJSBQ@mail.gmail.com>
On Mon, Apr 01, 2013 at 11:11:20PM -0600, Felipe Contreras wrote:
Show 8 quoted lines
> > But if we know from reading waitpid(3) that waitpid should only fail due > > to EINTR, or due to bogus arguments (e.g., a pid that does not exist or > > has already been reaped), then maybe something like this makes sense: > > > > while ((waiting = waitpid(pid, &status, 0)) < 0 && errno == EINTR) > > ; /* nothing */ > > But we don't want to wait synchronously here, we just want to ping.
Yeah, sorry, I forgot the WNOHANG there.
Show 11 quoted lines
> > After the fix above, yes; in the original we would always have exited > > already. > > No: > > + if (waiting != cmd->pid) > + return 1; > > If waiting < 0, waiting != cmd->pid, and therefore this return is not > triggered, and there's only one more return at the end of the > function.
Are my eyes not working? If waiting < 0, then waiting != cmd->pid, and therefore this return _is_ triggered.
-Peff