Paul Querna wrote:

This only works for the EPoll and KQueue backends. This allows a worker thread to _add() or _remove() directly, without having to touch the thread in _poll().

It could be implemented for plain Poll by having the pollset contain an internal pipe. This Pipe could be pushed by an _add() or _remove() and force the _poll() thread to wake up. The thread in _poll() could then add or remove any sockets from it's set, and then start the _poll() again.....

This is how your original patch did it, but we could push it down to APR.

let's stick with your version at least for now.

I don't think in the end it will yield good performance with this method.

agreed. I wasn't happy with the extra pipe and the overhead, though some of that could go away. The point was to get something out there as a proof-of-concept that would work for just about anybody. Today the barrier to entry is much lower in the Linux world anyway. I'm not sure if a distro with a 2.6 kernel will install easily on my Pentium Pro benchmarking box, but that's a pretty weird environment.


Greg



Reply via email to