diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-21 19:00:03 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2016-10-21 19:00:03 +0200 |
| commit | e28c0d9b1072c8b75ed43c09f883b1a0bd06846d (patch) | |
| tree | 3b14efcfb15eee739bbc2be5e4bacbcc547f3ba6 /libcmix-network | |
| parent | 510ce3bec7915a790fbf75ace5521e437d9d416a (diff) | |
| download | cmix-e28c0d9b1072c8b75ed43c09f883b1a0bd06846d.tar.gz cmix-e28c0d9b1072c8b75ed43c09f883b1a0bd06846d.tar.bz2 cmix-e28c0d9b1072c8b75ed43c09f883b1a0bd06846d.zip | |
Only send one transaction at a time when 2 async_sends are queued after each other.
Diffstat (limited to 'libcmix-network')
| -rw-r--r-- | libcmix-network/client.hpp | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/libcmix-network/client.hpp b/libcmix-network/client.hpp index 0b98c1c..2501908 100644 --- a/libcmix-network/client.hpp +++ b/libcmix-network/client.hpp @@ -152,17 +152,19 @@ public: os.write(reinterpret_cast<char*>(length_buffer.data()), length_buffer.size()); os.write(message.data(), message.size()); - auto handler = [on_sent](boost::system::error_code const& ec, std::size_t bytes_transferred) { + auto handler = [this, on_sent](boost::system::error_code const& ec, std::size_t bytes_transferred) { if(ec) { BOOST_LOG_TRIVIAL(fatal) << ec.message(); throw std::runtime_error("unable to send message"); } + send_buffer->consume(bytes_transferred); on_sent(); }; + boost::asio::async_write( *socket, - *send_buffer, + send_buffer->data(), handler ); } |
