Browse Source

[5260] Added commentary about making copies of function handlers.

Marcin Siodelski 8 years ago
parent
commit
10eaa838de
1 changed files with 10 additions and 0 deletions
  1. 10 0
      src/lib/http/connection.cc

+ 10 - 0
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,