From e94825bb41196c6010f98b640a64451a33455e9e Mon Sep 17 00:00:00 2001 From: Peter Thorson Date: Mon, 13 Feb 2012 07:06:15 -0600 Subject: [PATCH] adjust listen locking, fixes #66 --- src/roles/server.hpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/roles/server.hpp b/src/roles/server.hpp index 9bbaedbd07..5e67ab9d67 100644 --- a/src/roles/server.hpp +++ b/src/roles/server.hpp @@ -230,7 +230,7 @@ private: template void server::listen(const boost::asio::ip::tcp::endpoint& e) { - boost::lock_guard lock(m_endpoint.get_lock()); + boost::unique_lock lock(m_endpoint.get_lock()); if (m_state != IDLE) { throw exception("listen called from invalid state."); @@ -242,6 +242,8 @@ void server::listen(const boost::asio::ip::tcp::endpoint& e) { m_acceptor.listen(); this->start_accept(); + + lock.unlock(); m_endpoint.run_internal(); }