Skip to content

Overlapping write operations corrupt RawSocket messages #117

@postry

Description

@postry

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions