From: Junio C Hamano <gitster@pobox.com>
To: Phillip Wood <phillip.wood123@gmail.com>
Cc: Daniel Sonbolian via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org, Daniel Sonbolian <dsal3389@gmail.com>
Subject: Re: [PATCH v2 1/2] git-p4: minor optimization in read_pip_lines
Date: Fri, 07 Oct 2022 10:28:33 -0700 [thread overview]
Message-ID: <xmqqy1trfsqm.fsf@gitster.g> (raw)
In-Reply-To: <69d57d56-2b74-5ee0-a279-de5eb10df7bf@dunelm.org.uk> (Phillip Wood's message of "Fri, 7 Oct 2022 16:17:33 +0100")
Phillip Wood <phillip.wood123@gmail.com> writes:
> Hi Daniel
>
> On 07/10/2022 15:38, Daniel Sonbolian via GitGitGadget wrote:
>> From: Daniel Sonbolian <dsal3389@gmail.com>
>> checking for an error condition before reading and/or decoding
>> lines from the pip stream to avoid unnecessary computation
>
> It would be helpful to say a little more about what the error is
> you're detecting why it is better to detect it earlier. Having looked
> at the changes I'm not really sure what these changes are trying to
> improve
Thanks for the comments.
Also, even though Documentation/SubmittingPatches does not mention
in its [[describe-changes]] section, we do use the usual
capitalization in the body of the commit log message (after the
<area>: prefix on the commit title is the only exception).
I agree with everything you said in your review about the code.
Unless what pipe.readlines() would read is so small that it fits in
the OS pipe buffer, waiting for the subprocess to finish without
reading its output is likely to deadlock.
Thanks.
>> Signed-off-by: Daniel Sonbolian <dsal3389@gmail.com>
>> ---
>> git-p4.py | 10 +++++++---
>> 1 file changed, 7 insertions(+), 3 deletions(-)
>> diff --git a/git-p4.py b/git-p4.py
>> index d26a980e5ac..097272a5543 100755
>> --- a/git-p4.py
>> +++ b/git-p4.py
>> @@ -399,11 +399,15 @@ def read_pipe_lines(c, raw=False, *k, **kw):
>> p = subprocess.Popen(c, stdout=subprocess.PIPE, *k, **kw)
>> pipe = p.stdout
>> +
>> + if p.wait():
>> + die('Command failed: {}'.format(' '.join(c)))
>
> I'm not a python programmer, but the documentation for Popen.wait()
> says that this will wait for the process to finish, so I think calling
> it before reading the lines below is an error.
>
>> lines = pipe.readlines()
>> + pipe.close()
>
> You're now ignoring the return value of pipe.close() - is that safe?
>
>> +
>> if not raw:
>> - lines = [decode_text_stream(line) for line in lines]
>> - if pipe.close() or p.wait():
>> - die('Command failed: {}'.format(' '.join(c)))
>> + return [decode_text_stream(line) for line in lines]
>> return lines
>
> I'm not really sure what you're tying to achieve here - what was wrong
> with the original code?
>
> Best Wishes
>
> Phillip
next prev parent reply other threads:[~2022-10-07 17:28 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-10-06 11:45 [PATCH 0/2] Minor Refactors: remove useless else dsal3389 via GitGitGadget
2022-10-06 11:45 ` [PATCH 1/2] python file more pytonic, adjust "if" and "for" dsal3389 via GitGitGadget
2022-10-06 16:02 ` Victoria Dye
2022-10-06 17:16 ` Junio C Hamano
2022-10-06 11:45 ` [PATCH 2/2] removed else statement dsal3389 via GitGitGadget
2022-10-06 16:14 ` Victoria Dye
2022-10-07 18:35 ` Junio C Hamano
2022-10-06 17:16 ` Junio C Hamano
2022-10-06 17:06 ` [PATCH 0/2] Minor Refactors: remove useless else Junio C Hamano
2022-10-07 14:38 ` [PATCH v2 0/2] git.c: improve readability | git-p4: minor optimization Daniel Sonbolian via GitGitGadget
2022-10-07 14:38 ` [PATCH v2 1/2] git-p4: minor optimization in read_pip_lines Daniel Sonbolian via GitGitGadget
2022-10-07 15:17 ` Phillip Wood
2022-10-07 17:28 ` Junio C Hamano [this message]
2022-10-07 14:38 ` [PATCH v2 2/2] git.c: improve code readability in cmd_main Daniel Sonbolian via GitGitGadget
2022-10-08 16:21 ` [PATCH v3] " Daniel Sonbolian via GitGitGadget
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=xmqqy1trfsqm.fsf@gitster.g \
--to=gitster@pobox.com \
--cc=dsal3389@gmail.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=phillip.wood123@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.
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 NNTP newsgroup(s).