Well if you have read dilbert comic strips, you would definitely realized by now, that if you dont work on a particular programming language for more than 6 months, then you are as amateur as a school grad. Actually school grads will perform better. Anyways, the problem I came across was I needed to refactor, rather fix some part of the program which was initially written in a very sequential manner and needed to be scaled. After much hype of nodejs and similar frameworks on Async programming, I thought why not try Boost ASIO. Mind you this is not for the feint heart.
So here is what I do. Here is an excellent ppt . It relatively easier if you have prior background on Async programming. Time to test some sample programs in it.
The run() in io_service ensures the main program doest terminate, thus giving back control to OS. Also, you can create mutiple handlers for the same io_service or can mutiplex it ( more on that later..)