
Arkadiy Vertleyb wrote:
My problem with the current approach is that synchronous operations seems to be viewed as second-class citizens. I understand that this is caused by the fact that asio is about the asynchronous IO. But asio is presented as the "best C++ networking library around", and in networking both synchronous and asynchronous approaches are used, and neither is superior for all possible cases.
Consider "Patterns for concurrent and networked objecs" by D. Schmidt, at al. Quite a few patterns described there are related to the synchronous processing.
I think a little refactoring might lead to a better solution than trying to add synchronous operations on top of existing asio.
I think that we should be careful not to break something that has been proven to work well because a little refactoring "might" lead to a better solution (unless the author agrees, of course.) The argument that asio is presented as "the best networking C++ library around" is not enough of an excuse.