On Sat, May 29, 2004 at 03:04:58PM -0700, Paul Querna wrote:
> Hello,
> Attached is a patch that implements a sys_epoll backend for
> apr_pollset_*. For some info on epoll in general check out:
> http://lse.sourceforge.net/epoll/
> http://www.xmailserver.org/linux-patches/nio-improve.html
Interesting... some nits:
- C++ // comments bad ;)
- CPP #directives must not have leading whitespace before the #
- needs to cope with the fact that glibc implements epoll* returning
ENOSYS or whatever on 2.4 kernels IIRC, via autoconf or runtime checks
An issue I mentioned before w.r.t. removal of apr_poll() in HEAD: this
type of implementation will surely end up being slower than using poll()
for polling on small numbers of fds (a not uncommon case), due to the
fact that it requires three rather than one system call? Some
benchmarks might be interesting.
I wondered whether apr_poll() should remain using poll() with it's low
constant overhead, and the apr_pollset_* interface alone should use the
high-constant-overhead interfaces like epoll or /dev/poll?
joe
|