
Hi all, This is a question to networking gurus, and is on the edge of being off topic, but I am asking it here because I hope it will help me to better understand rationale behind the asio design... As was stated before, asio is based on the proactor pattern. This pattern is known for its scalability, but is difficult to port since it's based on asynchronous calls which are implemented differently (or not implemented at all) on diferent OSs. OTOH, reactor (the one based on select) seems to be easily portable, and also scalable, but its only real problem is that it doesn't utilise threads, and so it can't take an advantage of multi-processor systems. So my question is, isn't this drawback easily remedied by just placing select-ed sockets into a queue, and having multiple threads (from a thread pool) pick them up and performing the work? Wouldn't this provide comparable performance on multiple processors, with much better portability, than proactor? Thanks, Arkadiy