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/