Poller_sigio had a bug in how it fell back to poll() on SIGIO.
Poller_select had a silly bug setting the timeout.
These are fixed, and I can now get up to 3000 users without any problem.
sigio burns a disappointing amount of cpu when it falls back to poll(),
but at 3000 users it's still a win over pure poll().
I have a feeling the signal-per-fd patch would help a lot.
/dev/epoll would also help nicely. Since I start my new job
Monday, I may not have time to try them for a while.
Benchmark results at
http://www.kegel.com/dkftpbench/results.html
Code at
http://www.kegel.com/dkftpbench/dkftpbench-0.29.tar.gz
- Dan