Le 01/05/13 23:08, Vicente J. Botet Escriba a écrit :
Le 01/05/13 20:39, Niall Douglas a écrit :
It is just that I don't know the term. As I don't know the domain (the words) you are talking about we can stop the exchange here if you prefer, or you could continue to explaining me the things I don't know/understand.
I have just read N3388 - Using Asio with C++11 and a think I start to understand the ASIO design. Could we say the completion handlers are continuations? And that the user use to master which thread executes the continuation by calling the io_service::run() function? And that io_service can have associated also several threads (to form a thread pool). And that in order to avoid data races the user uses strands to serialize the completion handlers that have access to shared data? While continuation passing style could be well adapted to protocols (and surely it is) , there are other domains that would prefer to write his code in a more linear way. It is true that with C++11 lambdas the continuation passing style is less opaque. I hope that now I would be able to understand your concerns better. Vicente