diff options
Diffstat (limited to 'implementation/endpoints/src/server_endpoint_impl.cpp')
-rw-r--r-- | implementation/endpoints/src/server_endpoint_impl.cpp | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/implementation/endpoints/src/server_endpoint_impl.cpp b/implementation/endpoints/src/server_endpoint_impl.cpp index 06b61f4..90aea96 100644 --- a/implementation/endpoints/src/server_endpoint_impl.cpp +++ b/implementation/endpoints/src/server_endpoint_impl.cpp @@ -34,7 +34,9 @@ server_endpoint_impl<Protocol>::server_endpoint_impl( configuration::endpoint_queue_limit_t _queue_limit, const std::shared_ptr<configuration>& _configuration) : endpoint_impl<Protocol>(_endpoint_host, _routing_host, _local, _io, _max_message_size, - _queue_limit, _configuration) { + _queue_limit, _configuration), + sent_timer_(_io) { + is_sending_ = false; } template<typename Protocol> @@ -594,6 +596,14 @@ void server_endpoint_impl<Protocol>::send_cbk( boost::system::error_code const &_error, std::size_t _bytes) { (void)_bytes; + { + std::lock_guard<std::mutex> its_sent_lock(sent_mutex_); + is_sending_ = false; + + boost::system::error_code ec; + sent_timer_.cancel(ec); + } + std::lock_guard<std::mutex> its_lock(mutex_); auto check_if_all_msgs_for_stopped_service_are_sent = [&]() { |