threads / patch / 15864

patchGit.pm: release hash and blob handles

Subject: [PATCH] Git.pm: release hash and blob handles

## tl;dr

2 messages between Oct 11, 2008 and Oct 11, 2008. Diffs are folded; open one to read it.

replies: 1people: 2as markdown or json

Ray Chuan· Oct 11, 2008, 19:29 UTC · lore
the methods
 * hash_and_insert_object
 * cat_blob

use bidirectional pipes to pull/push data from the various git utilities, but they don't close them after this is complete. this denies Git's subsequent attempts to use these resources, leading to failure.

a simple, reproducible test case can be seen at http://rctay.spaces.live.com/blog/cns!59D3BFCD027B09E5!792.entry.

Signed-off-by: Tay Ray Chuan <rctay89 <at> gmail.com>
---
 perl/Git.pm |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Show changes to perl/Git.pm +2 −1
diff --git a/perl/Git.pm b/perl/Git.pm
index 6aab712..7e17f38 100644
--- a/perl/Git.pm
+++ b/perl/Git.pm
@@ -821,6 +821,7 @@ sub hash_and_insert_object {
 		throw Error::Simple("in pipe went bad");
 	}

+	$self->_close_hash_and_insert_object();
 	return $hash;
 }

@@ -910,6 +911,7 @@ sub cat_blob {
 		throw Error::Simple("couldn't write to passed in filehandle");
 	}

+	$self->_close_cat_blob();
 	return $size;
 }

--
1.6.0.2
Petr Baudis· Oct 11, 2008, 21:23 UTC · re: Ray Chuan · lore

Re: [PATCH] Git.pm: release hash and blob handles

On Sun, Oct 12, 2008 at 03:29:28AM +0800, Ray Chuan wrote:
Show 12 quoted lines
> the methods
> 
>  * hash_and_insert_object
>  * cat_blob
> 
> use bidirectional pipes to pull/push data from the various git
> utilities, but they don't close them after this is complete. this
> denies Git's subsequent attempts to use these resources, leading to
> failure.
> 
> a simple, reproducible test case can be seen at
> http://rctay.spaces.live.com/blog/cns!59D3BFCD027B09E5!792.entry.

Hmm, I don't understand why git-svn does not work for you, but this patch is not correct. The whole point of the infrastructure is to leave the pipes open so that subsequent calls _reuse_ these pipes. This leads to substantial speedup as you do not need to re-fork git all the time.

-- 
				Petr "Pasky" Baudis
People who take cold baths never have rheumatism, but they have
cold baths.

← back to recent threads