Right. If I were you I would use kqueue() on *BSD or
epoll() which is avail only on 2.6 linux kernels. 

I am not sure what you are trying to achieve but it
may be worthwhile to take a look at libevent by Neils
Provos as well. It abstracts out select(), kqueue()
and epoll() thus making ur app portable as a bonus. 

You may read the paper by Jonathan Lemmon on kqueue()s
advantages over select(). Select() gets horribly
inefficient as the number of file descriptors
increases. 

HTH,
Girish

--- Darryl Miles <[EMAIL PROTECTED]>
wrote:

> Krishna M Singh wrote:
> > We are using the multiple contexts (although not
> same as thread count
> > i.e. 10 Contexts for 3 threads).. Select call may
> be failing as the
> > default FD_SET_SIZE is 255 on most systems and
> thus in case u want to
> > handle 1000 sockets u need to increase the limit..
> There is #def in
> > some Windows file.. chk that.. (Assuming u are
> running this on
> > Windows)...
> 
> This response is closest to the truth.
> 
> By default the "fd_set" type is a standard size on
> each platform.  In 
> another post you indicated you are using Linux
> 2.6.xx, which I presume 
> is based one glibc 2.3.x.
> 
> Looking at the systems I have access too glibc 2.3.2
> and glibc 2.3.6:
> 
> 
> $ grep __FD_SETSIZE  /usr/include/bits/*.h
> /usr/include/bits/typesizes.h:#define   __FD_SETSIZE
>            1024
> 
> This is the maximum number of fd's the "fd_set" type
> holds by default. 
> Maybe it would be possible to stop the crashes and
> override this with 
> some ugly stack paddings:
> 
> #defined EXTRA_FDS 500
> char padd0[(EXTRA_FDS/8)+1];
> fd_set fdread;
> char padd1[(EXTRA_FDS/8)+1];
> 
> 
> 
> Maybe look at the comment in
> /usr/include/linux/posix_types.h for 
> informations.
> 
> 
> 
> It does not look like there is a compile time
> override to allow a lager 
> size.  Maybe the kernel has a hard upper limit for
> select() too, but I 
> dont this is the case.
> 
> 
> As Kyle also pointed out "ulimit -n 1500" would need
> to be addressed on 
> most standard Linux installed to get any usage
> beyond the default 1024 
> limit.  Otherwise accept() = -1 (EMFILE).
> 
> 
> You may look at poll() and epoll() as alternative
> event wake mechanisms 
> for IO with large numbers of fds in the working set.
> 
> 
> HTH
> 
> Darryl
>
______________________________________________________________________
> OpenSSL Project                                
> http://www.openssl.org
> User Support Mailing List                   
> openssl-users@openssl.org
> Automated List Manager                          
> [EMAIL PROTECTED]
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 
______________________________________________________________________
OpenSSL Project                                 http://www.openssl.org
User Support Mailing List                    openssl-users@openssl.org
Automated List Manager                           [EMAIL PROTECTED]

Reply via email to