From: Kristian Høgsberg Date: Fri, 14 Dec 2007 20:19:44 GMT Subject: Re: config.c fixes Message-ID: <1197663584.615.4.camel@hinata.boston.redhat.com> In-Reply-To: <7v3au5rrjv.fsf@gitster.siamese.dyndns.org> On Fri, 2007-12-14 at 11:43 -0800, Junio C Hamano wrote: > Kristian Høgsberg writes: > > > While strace'ing builtin-clone I saw this horror: > > I think the best solution is to just parse up the entire config file > > up front and keep it in a data structure, make the changes and then > > write it all out at the end. > > Yeah, that was what I suggested a few times when other people have done > config writing side, but without successfully getting past their skulls > (it is not Linus's nor my code). It's about time somebody started to > clean up that mess. > > The timing is a bit unfortunate, though. I would have preferred to have > a week or so to cook this in 'next' before merging it part of -rc0. Right, what I was describing above was more of a long term thing. I sent two patches more suitable for 1.5.4 that fixes the double close and the 1-byte writes in a less intrusive way. Except as the Johanneses point out, I can't use the lock as a local variable, but must allocate so the atexit handler doesn't break. If it has to be allocated, the API should help/enforce that. I've sent out a couple of new patches that fixes this. Kristian