What's the point of boost::asio::async_write?

So, I'm learning Boost.ASIO and I thought that, like any high level networking library, it would be able to queue messages for me. boost::asio::async_write looks like the perfect candidate: I would just call it repeatedly for all the messages that need to be sent, and let it do its thing. But then I read this in the documentation:
Boost wrote:
The program must ensure that the stream performs no other write operations (such as async_write, the stream's async_write_some function, or any other composed operations that perform writes) until this operation completes.
http://www.boost.org/doc/libs/1_59_0/doc/html/boost_asio/reference/async_write/overload1.html
Um, what? That makes this function completely useless to me - if anything this function is incredibly dangerous and I would never use it.

There's also boost::asio::write, but it is blocking, which is undesirable. Do I really have to implement a message queue myself?
Ah, I should stop getting ahead of myself. Thanks, JLBorges!
Topic archived. No new replies allowed.