On Mon, Feb 23, 2004 at 01:33:31PM -0600, Scott Lamb wrote:
> I'm putting together a patch to use SO_(RCV|SND)TIMEO for 
> apr_socket_timeout where available; I expect I'll find it has better 
> performance on some platforms, as it would no longer require using 
> non-blocking IO and preceding every read() and write() with a select(). 
> (I intend to try benchmarking Apache on Darwin, where the system call 
> overhead seems to be quite high.)
> 
> On some older versions of platforms (Linux 2.2), these #defines exist 
> but do not work - it's not possible to set them. Can I assume that if 
> APR is built with a kernel in which it does work (Linux 2.4), it will 
> be run with one as well? Or should I include a runtime check for this 
> option?

Icky. I don't think it is really possible to make that assumption.
Thankfully, I also believe this is reasonably solved with a global
variable (i.e. race conditions around coming up with the same flag don't
apply :-), and the value certainly won't change over the process'
lifetime).

I would recommend a dynamic solution for now. We may be able to make that
compile-time for certain platforms, where we know "all" versions handle
the flag properly [when present].

Cheers,
-g

-- 
Greg Stein, http://www.lyra.org/

Reply via email to