title: Clear boost::asio::io_service after stop()
body: <p>I am using (single threaded) a <code>boost::asio:io_service</code> to handle a lot of tcp connections. For each connection I use a deadline_timer to catch timeouts. If any of the connections times out, I can use none of the results of the other connections. Therefore I want to completely restart my io_service. I thought that calling <code>io_service.stop()</code> would allow "finished" handlers in the queue to be called and would call handlers in the queue with an error.</p>
  
  <p>However it looks like the handlers remain in the queue and therefore calling <code>io_service.reset()</code> and later <code>io_service.run()</code> brings the old handlers back up.
  Can anyone confirm that the handlers indeed remain in the queue even after <code>io_service.stop()</code> is called. And if so, what are the possibilities to completly reset the io_service, e.g. remove all queued handlers?</p>