Confused when boost::asio::io_service run method blocks/unblocks
Being a total beginner to Boost.Asio, I am confused with io_service::run() . I would appreciate it if someone could explain to me when this method blocks/unblocks. The documentations states: The run() function blocks until all work has finished and there are no more handlers to be dispatched, or until the io_service has been stopped. Multiple threads may call the run() function to set up a pool of threads from which the io_service may execute handlers. All threads that are waiting in the pool are equivalent and the io_service may choose any one of them to invoke a handler. A normal exit from