We are developing a client-server application using Boost ASIO for asynchronous socket communication.  We were wondering whether it is safe to cancel a read on a socket by closing the socket from another thread (without any additional synchronization)?   What would be the preferred way to cancel operations from different threads?

Thanks in advance,

Mark Christiaens
Amplidata