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

Re: [PATCH] Don't try to reclose in command_close_bidi_pipe

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Jan 30, 2009, 14:35 UTC
Message-ID
<be6fef0d0901300635v4e6009f1n7da405ebc4c8dd68@mail.gmail.com>
In-Reply-To
<1233291570-23295-1-git-send-email-nothingmuch@woobling.org>
Hi,
On Fri, Jan 30, 2009 at 12:59 PM, Yuval Kogman <nothingmuch@woobling.org> wrote:
> Some commands require their standard input to be closed (like
> git-commit-tree). This patch changes command_close_bidi_pipe so no
> longer tries to close already closed handles, resulting in an error.
>From this message, you seem to intend this as a fix. Can you tell us
how one might go about to reproduce this issue?
Show 13 quoted lines
> ---
>  perl/Git.pm |    1 +
>  1 files changed, 1 insertions(+), 0 deletions(-)
>
> diff --git a/perl/Git.pm b/perl/Git.pm
> index 7d7f2b1..283bba8 100644
> --- a/perl/Git.pm
> +++ b/perl/Git.pm
> @@ -422,6 +422,7 @@ sub command_close_bidi_pipe {
>        local $?;
>        my ($pid, $in, $out, $ctx) = @_;
>        foreach my $fh ($in, $out) {
> +               next unless defined(fileno($fh));
Quoting the perldoc for fileno at http://perldoc.perl.org/functions/fileno.html

"(Filehandles connected to memory objects via new features of open may return undefined even though they are open.)"

Is "unless defined(fileno($fh))" a reliable way to check if the handle is closed?

-- 
Cheers,
Ray Chuan
Previous: Yuval KogmanNext: Yuval Kogman
Message 2 of 4 in “Don't try to reclose in command_close_bidi_pipe”
  1. Don't try to reclose in command_close_bidi_pipeYuval Kogman, Jan 30, 2009
  2. Tay Ray ChuanJan 30, 2009
  3. Yuval KogmanJan 30, 2009
  4. Tay Ray ChuanJan 31, 2009

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.