-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
Labels
Description
Messages in AsioTransport are not queued. So when the first message that is being sent is large and takes a "long time" to transfer it a second call to AsioTransport::send is invoked from a different place in the code causing async_write to be called before the first write operation completion.
According to the documentation the boost::asio:async_write operation is implemented in terms of zero or more calls to the stream's async_write_some function, and is known as a composed operation. 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.