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
