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
