Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 9 Nov 1998 13:30:12 -0500 (EST)
From:      Thomas David Rivers <rivers@dignus.com>
To:        marcs@znep.com, nate@mt.sri.com
Cc:        hackers@FreeBSD.ORG
Subject:   Re: Supporting more than FD_SETSIZE fd's
Message-ID:  <199811091830.NAA24229@lakes.dignus.com>
In-Reply-To: <199811091826.LAA05253@mt.sri.com>

next in thread | previous in thread | raw e-mail | index | archive | help
> 
> > > I need to support more than the default 255 FD's in an application (the
> > > JDK for what it's worth).
> ...
> > > I looked through the code in Apache, and I don't see how it does this,
> > > since I never saw any re-definition of FD_SETSIZE, or use of anything
> > > other than fd_setsize.  (Although, I did see mention of FD_SETSIZE quite
> > > a bit in the comments.)
> > 
> > Apache doesn't use select() on high numbered descriptors so it doesn't
> > matter.
> 
> How does it determine if there is data on those FD's w/out select?  I
> would think that if you have more than 255 active FD's (pretty common)
> then you'd have a problem.
> 
> > FD_SETSIZE doesn't limit the number of descriptors, it just limits the
> > highest descriptor you can pass to select().  
> 
> Right, hence my question on how other applications deal with the
> problem, since select doesn't have inherent limitation.
> 
> > There are various possible workarounds:
> > 
> > - use poll().  Only on 3.0 unfortunately.
> > 
> > - on 3.0, FD_SETSIZE defaults to 1024.
> 
> I'm on 2.2.*
> 
> > - redefine FD_SETSIZE before including sys/types.h.  This may seem to be a
> > pain, but in most large projects you should have some common header files
> > you can use for that anyway.  This doesn't fix any libraries that you use
> > though, which may use select() internally with a small FD_SETSIZE.
> 
> No external libraries are used except for Motif.  I'm not sure if it
> uses Select, but I doubt it.  In any case, I'm still defaulting to a
> larger limit, which is still not a great solution.

 I believe you'll find that X11 (on which Motif is based) does use
select().


	- Dave Rivers -

To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199811091830.NAA24229>