aboutsummaryrefslogtreecommitdiff
path: root/libcmix-network
diff options
context:
space:
mode:
authorDennis Brentjes <d.brentjes@gmail.com>2016-10-21 19:00:03 +0200
committerDennis Brentjes <d.brentjes@gmail.com>2016-10-21 19:00:03 +0200
commite28c0d9b1072c8b75ed43c09f883b1a0bd06846d (patch)
tree3b14efcfb15eee739bbc2be5e4bacbcc547f3ba6 /libcmix-network
parent510ce3bec7915a790fbf75ace5521e437d9d416a (diff)
downloadcmix-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.hpp6
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
);
}