title: Boost Asio, io_service handles only one socket per core
body: <p>I am writing a server application using Boost Asio:</p>
  
  <ol>
  <li>Server: Running io_service.run() from pool of threads (one thread per core), accepting connections &amp; reading data from sockets is done asynchronously.</li>
  <li>Client: Each client connects and sends a heavy file (~500MB) to the server.</li>
  </ol>
  
  <p>Issue: All Clients are connected to the server (number of clients > number of server cores); io_service handles only one connection/socket per thread while data from other sockets are not processed until one of the processed connections completes.</p>
  
  <p>I would expect that data from all connected sockets gets processed by the io_service thread pool at a same time?</p>