Re: [PATCH] Don't try to reclose in command_close_bidi_pipe
From: Tay Ray Chuan <hidden>
Date: 2016-06-15 22:46:04
Hi, On Fri, Jan 30, 2009 at 11:06 PM, Yuval Kogman [off-list ref] wrote:
Here is an example: http://github.com/yanick/git-cpan-patch/blob/ed67d3f86f371764935fd0da3e7f08536c95b606/git-cpan-import#L190 Since git-commit-tree requires the message to be written before it can write the sha1 of the new commit object, the handle has to be closed already, which makes command_close_bidi_pipe die with an error. The workaround in the linked code reopens a fake handle so that close() will not error. For what it's worth, I've been poking at t/t9700/test.pl but since it's pretty sparse I figured I should contribute this fix independently.
Your usage seems to a very special case. You're closing the handle, and then invoking the method "command_close_bidi_pipe", whose job is to close the pipe handles passed to it (among other things). So, it doesn't seem very good to make "command_close_bidi_pipe" to take into account that you closed your handle independently. Maybe you could write a pair of new functions for the commit-tree command in the Git package, something like the "_open_hash_and_insert_object_if_needed" and "hash_and_insert_object" pair. -- Cheers, Ray Chuan