
29 Jan
2011
29 Jan
'11
9:44 p.m.
Hi, I'm implementing a full-duplex protocol over TCP/IP using Boost.Asio. Multiple threads will be calling 'io_service::run_one()', so I have to serialize my completion handlers. Since I need to be reading and writing on a socket at the same time, can I use the 'boost::asio::async_read(...)' and 'boost::asio::async_write(...)' functions? The documentation states that these are implemented in terms of calls to the stream's async_read_some and async_write_some functions, and the 'basic_stream_socket' class isn't thread-safe.
Your statements are correct, but I'm not sure I got the question. If you ask whether you may call async_read and async_write simultaneously on the same socket, then the answer is yes, of course.