Re: [JGIT PATCH 3/4] Cap the number of open files in the WindowCache
- From
Robin Rosenberg <robin.rosenberg.lists@dewire.com>
- Date
- Mar 17, 2009, 22:59 UTC
- Message-ID
- <200903172359.32595.robin.rosenberg.lists@dewire.com>
- In-Reply-To
- <1237252570-8596-4-git-send-email-spearce@spearce.org>
tisdag 17 mars 2009 02:16:09 skrev "Shawn O. Pearce" <spearce@spearce.org>:
> If we detect a file open failure while opening a pack we halve > the number of permitted open files and try again, until we reach > a lower bound of 16 open files. Needing to go lower may indicate > a file descriptor leak in the host application.
...
Show 12 quoted lines
> + TRY_OPEN: for (;;) {
> + try {
> + openFileCount++;
> + releaseMemory();
> + runClearedWindowQueue();
> + wp.openCount = 1;
> + wp.cacheOpen();
> + break;
> + } catch (IOException ioe) {
> + openFileCount--;
> + if ("Too many open files".equals(ioe.getMessage())
> + && maxFileCount > 16) {The output of getMessage isn't that simple to interpret. Here it is filename+" (Too many files open)", and on other platforms it is probably something else. This goes for the message part of most exceptions thrown from platform specific code like file i/o socket i/o etc. The type of exception is a FileNotFoundException, btw.
I wonder whether your code works on any platform.