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

[PATCH 2/4] Git.pm: Allow pipes to be closed prior to calling command_close_bidi_pipe

From
MNMichal Nazarewicz <mpn@google.com>
Date
Feb 6, 2013, 20:47 UTC
Message-ID
<c0966644278b0addbef6a03289ef9c553addf573.1360183427.git.mina86@mina86.com>
In-Reply-To
<cover.1360183427.git.mina86@mina86.com>
From: Michal Nazarewicz <mina86@mina86.com>

The command_close_bidi_pipe() function will insist on closing both input and output pipes returned by command_bidi_pipe(). With this change it is possible to close one of the pipes in advance and pass undef as an argument.

This allows for something like:
  my ($pid, $in, $out, $ctx) = command_bidi_pipe(...);
  print $out "write data";
  close $out;
  # ... do stuff with $in
  command_close_bidi_pipe($pid, $in, undef, $ctx);
Signed-off-by: Michal Nazarewicz <mina86@mina86.com>
---
 perl/Git.pm | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/perl/Git.pm b/perl/Git.pm
index bbb753a..6a2d52d 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -432,7 +432,7 @@ sub command_close_bidi_pipe {
 	local $?;
 	my ($self, $pid, $in, $out, $ctx) = _maybe_self(@_);
 	foreach my $fh ($in, $out) {
-		unless (close $fh) {
+		if (defined $fh && !close $fh) {
 			if ($!) {
 				carp "error closing pipe: $!";
 			} elsif ($? >> 8) {
-- 
1.8.1.2.549.g4fa355e
Previous: Michal NazarewiczNext: Jeff King
Message 3 of 11 in “Make git-send-email git-credential”
  1. 0/4 Make git-send-email git-credentialMichal Nazarewicz, Feb 6, 2013
  2. 1/4 Git.pm: Allow command_close_bidi_pipe() to be called as methodMichal Nazarewicz, Feb 6, 2013
  3. 2/4 Git.pm: Allow pipes to be closed prior to calling command_close_bidi_pipeMichal Nazarewicz, Feb 6, 2013
  4. Jeff KingFeb 6, 2013
  5. Junio C HamanoFeb 7, 2013
  6. 3/4 Git.pm: Add interface for git credential command.Michal Nazarewicz, Feb 6, 2013
  7. Jeff KingFeb 6, 2013
  8. Matthieu MoyFeb 7, 2013
  9. Matthieu MoyFeb 7, 2013
  10. 4/4 git-send-email: Use git credential to obtain password.Michal Nazarewicz, Feb 6, 2013
  11. Jeff KingFeb 6, 2013

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.