Re: [PATCH 7/7] Replace mmap with xmmap, better handling MAP_FAILED.
- From
Shawn Pearce <spearce@spearce.org>
- Date
- Dec 24, 2006, 20:34 UTC
- Message-ID
- <20061224203448.GB631@spearce.org>
- In-Reply-To
- <Pine.LNX.4.63.0612241410400.19693@wbgn013.biozentrum.uni-wuerzburg.de>
Johannes Schindelin <Johannes.Schindelin@gmx.de> wrote:
> All in all it is a good change -- for the builtin programs. > > But it is less good for the libification. Maybe it is time for a > discussion about the possible strategies to avoid dying in libgit.a?
Well we have the same problem with xmalloc. All I've done is move the MAP_FAILED cases which tend to wind up die()'ing later anyway into the same scope of area where the xmalloc issue is.
We die() all over the place. ~1312 times according to 'git grep die'. Git isn't a program for the living. :-)
To properly libify we have a few issues:
- we cannot just exit this process when we run into an error;
- routines need to cleanup temporary resources (memory, file
descriptors) when returning an error; - static variables like environment.c need to be reorganized to
support multiple repositories in the same program; - objects need to be able to be deallocated, especially
if the revision walking machinary has done rewritingThough the die() is the largest issue.
-- Shawn.