I was under the impression that it was threadsafe.I would expect the worker thread to return from the blocking boost::asio::read call, with an error. This occurs on windows, but does not happen on the linux build of my app - it never returns from the above call. Why does the second thread never return? What am I doing wrong?Socket object is not threadsafe -- it's not safe to access it from multiple threads.