On Sun, Sep 25, 2016 at 10:17 AM, Tatsuyuki Ishi
I'm now searching for an alternative and why.
Asio sucks in the following point: Its design is incapable to save system calls by doing a batch poll. Its design doesn't allow the user to specify a timeout, which is essential in suspend_until. It lacks of useful things for a coroutine-based system like filesystem operations.
A refined iteration on Boost.Asio is poised to become part of the C++ standard library (see http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2016/n4588.pdf). Once this becomes standardized, I would imagine that all other low-level networking implementations for C++ are going to go away over time - after all, why would someone bother with an additional dependency when such functionality is already offered by the standard library? Therefore, if you feel there are deficiencies in either the interface of Boost.Asio, or the implementation of Boost.Asio I urge you to contact the author and the networking working group and present actionable claims. Its not too late to make justifiable interface changes now.