title: Boost async_read_some not exactly asynchronous
body: <p>This is my server code:</p>
  
  <pre><code>socket_.async_read_some(boost::asio::buffer(data_read.data(), Message::header_length),
      boost::bind(&amp;TcpConnection::handle_read_header, shared_from_this(),
      boost::asio::placeholders::error));
  </code></pre>
  
  <p>If i write a the the following code in a loop</p>
  
  <pre><code>boost::thread::sleep(boost::posix_time::seconds(2));
  </code></pre>
  
  <p>in the 'handle_read_header' function which is called by the above 'async_read_some' the whole thread is waiting till the sleep end. So when another request comes in it is not handled until the sleep finishes. Isn't is suppose to asynchronously handles each requests? I am new to boost and C++. Please let me know if i have mentioned anything wrong.  </p>