From: Shawn Pearce Date: Sun, 24 Dec 2006 20:34:48 GMT Subject: Re: [PATCH 7/7] Replace mmap with xmmap, better handling MAP_FAILED. Message-ID: <20061224203448.GB631@spearce.org> In-Reply-To: Johannes Schindelin 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 rewriting Though the die() is the largest issue. -- Shawn.