
From: "Bruno Santos" <bsantos@av.it.pt>
The thread pool is a BAD IDEA. I'm very interested in your library, I would like to use it with other async services I have implemented using Boost Asio. For this a need to specify which io_service your library is going to use and no threads whatsoever. I like the idea of boost Asio, having a single io_service where I can put as many threads to run as I would like (this would usually be a number of threads equal to the number of cores).
I agree completely. I'm writing some thin "middle-ware" networking libraries and the threading (single, pool, etc) is left completely up to the higher layers. The constructors either use an internal io_service, or take an io_service by reference, allowing (if desired) the same io_service to be shared among multiple (other) libraries. There's too many libraries that encapsulate a whole threading subsystem, but one of the beauties of Asio is that it decouples networking from the threading strategy, and I would hope a good, general-use HTTP library would allow the same (in particular, one of the use cases I would expect a good general-use HTTP library to support is embedded systems with small footprints and minimal or no threading - I haven't looked at netlib in a while, so don't know how closely the HTTP portions meet this goal). Cliff