Release pack windows before reporting out of memory.
commit97bfeb34df1aa8a1cf232278624a5a5c924ee380
authorShawn O. Pearce <spearce@spearce.org>
Sun, 24 Dec 2006 05:47:19 +0000 (24 00:47 -0500)
committerJunio C Hamano <junkio@cox.net>
Fri, 29 Dec 2006 19:36:45 +0000 (29 11:36 -0800)
treec1591e0eac89204f6db3f2a8a8ec3b86b6c40be1
parent8c82534d89cef9260c12768e74eb4ef6c54f7217
Release pack windows before reporting out of memory.

If we are about to fail because this process has run out of memory we
should first try to automatically control our appetite for address
space by releasing enough least-recently-used pack windows to gain
back enough memory such that we might actually be able to meet the
current allocation request.

This should help users who have fairly large repositories but are
working on systems with relatively small virtual address space.
Many times we see reports on the mailing list of these users running
out of memory during various Git operations.  Dynamically decreasing
the amount of pack memory used when the demand for heap memory is
increasing is an intelligent solution to this problem.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Junio C Hamano <junkio@cox.net>
git-compat-util.h
sha1_file.c