And maybe it's my imagination but I could swear it's faster this way.
At the moment I'm using a fixed size thread pool. There are eight worker
threads, one master socket listening thread, and one supervisor thread. I
haven't decided yet whether I want to move the master socket listener back
into the worker pool.
What I can tell you is that I intend to make citserver's thread pool expansion
algorithm identical to webcit's: start with a very small number of threads,
and spawn a new thread whenever it is determined that there is 100% utilization,
up to a fixed limit. There is no reduction of the pool size.
I think any further architecture decisions will be based upon a discussion
of how libev will eventually work. I am hoping that libev could eventually
become the main loop for all worker threads.