On 9 March 2015 at 20:04, Jim Jagielski <[email protected]> wrote: > As far as I can tell, there are no real consumers of apr_pollcb_*() > other than Motorz (and Simple)... Not sure, but it looks like the > pollcb stuff may be lagging, since I'm getting some weird behavior > when using that impl. So I'll likely be moving Motorz off of > pollcb and use the "traditional" impl which has been proven in > Event. >
I'd like to share some thoughts about pollcb as Windows developer. Most efficient way to handle a lot of connections on Windows is I/O completion ports (IOCP). They are like epoll, but different. Here is good writeup about difference [1]. In short: IOCP provides notification when I/O completes, while epoll provides notifications when socket is ready to perform I/O operation. It would require additional buffer to implement pollcb using IOCP on Windows. Or APR/HTTPD should have different abstraction that is responsible for I/O and waiting for completion. [1] http://www.ulduzsoft.com/2014/01/practical-difference-between-epoll-and-windows-io-completion-ports-iocp/ -- Ivan Zhakov
