diff --git a/src/roles/server.hpp b/src/roles/server.hpp index 0c1cc781b3..0531b4e1f1 100644 --- a/src/roles/server.hpp +++ b/src/roles/server.hpp @@ -237,7 +237,7 @@ private: template void server::listen(const boost::asio::ip::tcp::endpoint& e) { - boost::unique_lock lock(m_endpoint.get_lock()); + boost::unique_lock lock(m_endpoint.m_lock); if (m_state != IDLE) { throw exception("listen called from invalid state."); @@ -275,7 +275,7 @@ void server::listen(const std::string &host, const std::string &servic template void server::start_accept() { - boost::lock_guard lock(m_endpoint.get_lock()); + boost::lock_guard lock(m_endpoint.m_lock); connection_ptr con = m_endpoint.create_connection(); @@ -305,7 +305,7 @@ template void server::handle_accept(connection_ptr con, const boost::system::error_code& error) { - boost::lock_guard lock(m_endpoint.get_lock()); + boost::lock_guard lock(m_endpoint.m_lock); if (error) { if (error == boost::system::errc::too_many_files_open) { @@ -405,12 +405,12 @@ void server::connection::async_init() { m_connection.get_socket(), m_connection.buffer(), "\r\n\r\n", - boost::bind( + m_connection.get_strand().wrap(boost::bind( &type::handle_read_request, m_connection.shared_from_this(), boost::asio::placeholders::error, boost::asio::placeholders::bytes_transferred - ) + )) ); }