According to the Boost Documentation, having multiple threads call io_service::run()
sets up a pool of threads that the IO service can use for performing asynchronous tasks. It explicitly states that all threads that have joined the pool are considered equivalent.
Does this imply that it is not possible to have a separate thread for reading from a socket and a separate one for writing? If it is possible, how would I implement this?