git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: [PATCH v2 1/2] git-p4: minor optimization in read_pip_lines

From
PWPhillip Wood <phillip.wood123@gmail.com>
Date
Oct 7, 2022, 15:17 UTC
Message-ID
<69d57d56-2b74-5ee0-a279-de5eb10df7bf@dunelm.org.uk>
In-Reply-To
<dd81a2cadec3e3f131d7b573bf110d4b6cc8f40d.1665153486.git.gitgitgadget@gmail.com>
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

Show 16 quoted lines
> 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?
Show 7 quoted lines
> +
>       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
Previous: Daniel Sonbolian via GitGitGadgetNext: Junio C Hamano
Message 12 of 15 in “Minor Refactors: remove useless else”
  1. 0/2 Minor Refactors: remove useless elsedsal3389 via GitGitGadget, Oct 6, 2022
  2. 1/2 python file more pytonic, adjust "if" and "for"dsal3389 via GitGitGadget, Oct 6, 2022
  3. Victoria DyeOct 6, 2022
  4. Junio C HamanoOct 6, 2022
  5. 2/2 removed else statementdsal3389 via GitGitGadget, Oct 6, 2022
  6. Victoria DyeOct 6, 2022
  7. Junio C HamanoOct 7, 2022
  8. Junio C HamanoOct 6, 2022
  9. Junio C HamanoOct 6, 2022
  10. 0/2 git.c: improve readability | git-p4: minor optimizationDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  11. 1/2 git-p4: minor optimization in read_pip_linesDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  12. Phillip WoodOct 7, 2022
  13. Junio C HamanoOct 7, 2022
  14. 2/2 git.c: improve code readability in cmd_mainDaniel Sonbolian via GitGitGadget, Oct 7, 2022
  15. git.c: improve code readability in cmd_mainDaniel Sonbolian via GitGitGadget, Oct 8, 2022

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.