httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jeff Trawick <>
Subject Re: Spurious return from select()
Date Wed, 08 Aug 2001 14:12:28 GMT
Shail Bhatnagar <> writes:

> I have observed that sometimes select() 
> returns a positive value to  one or more processes
> but only one is able to read UDP data.

On every system I know of, select() wakes up every process/thread
selecting on the same descriptor (e.g., UDP socket) when the condition
is met (e.g., a datagram is ready to read).

You'll want to use a mutex to ensure that only one process is in the 
select()+recvfrom() path at a time.  Otherwise, the extra wakeups will
hurt performance.

But Apache already does this when there are multiple listening (TCP)
sockets.  Take advantage of that mutex.

> The server is this case has been modified
> to listen on a well known udp port.
> Does anybody have any clue ? The errno returned
> by recvfrom() is 11 - resource temporarily unavailable.
> Secondly, is there a know crash on Solaris when
> APR_HAS_THREADS is on. This is about httpd 2.0.16 beta.

Justin Erenkrantz fixed a gethostbyname() issue with a threaded build
on Solaris < 8.  You may wish to try the latest code from CVS.

Jeff Trawick | | PGP public key at web site:
             Born in Roswell... married an alien...

View raw message