Christian Biere wrote:
> Dick C. Reichenbach wrote:
> > My most recent concern is that I've had to increase my file descripters 
> > limit from the stock limit of 256 per shell up to the kernel hard limit 
> > of 1024 in the GTK-Gnutella startup shell.  I ran for a while at 512, 
> > but the icon kept flashing that I was at my limit, and I was getting 
> > error messages in the console that files couldn't be written.
 
> The problem is really a flaw in Solaris. "FILE" (stdio) cannot handle
> descriptors above 255 and apparently Sun cannot be bothered to fix this
> ridiculous issue. I don't think getting rid of "FILE" is reasonable albeit it
> might be an option. One hack I could think of is to open() /dev/null 20x or so
> and then wrap fopen() and fclose(), so that we close() one of these file
> descriptors and open it again after fclose(). That way we could reserve 20 (or
> whatever amount) of file descriptors below 256.

Okay, I found a simpler workaround involving fcntl() using F_DUPFD. Sockets
and other file descriptors that we're not going to use with stdio are 
re-assigned
to a descriptor above 255 right after open(), socket() or accept(). This
should fix this issue for Solaris.

There's still a general issue though. We shouldn't open so much sockets that
we cannot open any further file.

-- 
Christian

-------------------------------------------------------------------------
Take Surveys. Earn Cash. Influence the Future of IT
Join SourceForge.net's Techsay panel and you'll get the chance to share your
opinions on IT & business topics through brief surveys - and earn cash
http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV
_______________________________________________
Gtk-gnutella-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/gtk-gnutella-devel

Reply via email to