From: Marcin Siodelski Date: Tue, 25 Apr 2017 17:04:08 +0000 (+0200) Subject: [5260] Added commentary about making copies of function handlers. X-Git-Tag: Kea-1.2.0~9 X-Git-Url: http://git.ipfire.org/gitweb/gitweb.cgi?a=commitdiff_plain;h=64f93bcae318a39f894f0928a78a779a37dbdbdf;p=thirdparty%2Fkea.git [5260] Added commentary about making copies of function handlers. --- diff --git a/src/lib/http/connection.cc b/src/lib/http/connection.cc index c476869eac..6944bf2b37 100644 --- a/src/lib/http/connection.cc +++ b/src/lib/http/connection.cc @@ -50,6 +50,7 @@ HttpConnection::~HttpConnection() { void HttpConnection::close() { + request_timer_.cancel(); socket_.close(); } @@ -67,6 +68,9 @@ HttpConnection::stopThisConnection() { void HttpConnection::asyncAccept() { + // Create instance of the callback. It is safe to pass the local instance + // of the callback, because the underlying boost functions make copies + // as needed. HttpAcceptorCallback cb = boost::bind(&HttpConnection::acceptorCallback, shared_from_this(), boost::asio::placeholders::error); @@ -83,6 +87,9 @@ void HttpConnection::doRead() { try { TCPEndpoint endpoint; + // Create instance of the callback. It is safe to pass the local instance + // of the callback, because the underlying boost functions make copies + // as needed. SocketCallback cb(boost::bind(&HttpConnection::socketReadCallback, shared_from_this(), boost::asio::placeholders::error, @@ -99,6 +106,9 @@ void HttpConnection::doWrite() { try { if (!output_buf_.empty()) { + // Create instance of the callback. It is safe to pass the local instance + // of the callback, because the underlying boost functions make copies + // as needed. SocketCallback cb(boost::bind(&HttpConnection::socketWriteCallback, shared_from_this(), boost::asio::placeholders::error,