Unmap individual windows rather than entire files.
authorShawn O. Pearce <spearce@spearce.org>
Sat, 23 Dec 2006 07:34:23 +0000 (02:34 -0500)
committerJunio C Hamano <junkio@cox.net>
Fri, 29 Dec 2006 19:36:44 +0000 (11:36 -0800)
commit54044bf825d311751e30552248be1e0cac99a5a3
tree0c4081a9a2a9fe118bf4cb49d610f5e226c67846
parent8d8a4ea5530ef9c738341887a7dcece4abd7dcbe
Unmap individual windows rather than entire files.

To support multiple windows per packfile we need to unmap only one
window at a time from that packfile, leaving any other windows in
place and available for reference.

We treat all windows from all packfiles equally; the least recently
used, not-in-use window across all packfiles will always be closed
first.

If we have unmapped all windows in a packfile then we can also close
the packfile's file descriptor as its possible we won't need to map
any window from that file in the near future.  This decision about
when to close the pack file descriptor may need to be revisited in
the future after additional testing on several different platforms
can be performed.

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