Felipe,
I guess it is MUST be mode/state in the socket when all pending recv
operations are canceled and new recv calls are rejected BUT socket handle is
still alive. Using this mode user can safely shutdown incoming data
processing. Otherwise user should lock socket before call
async_read/close/async_write.
On 7 June 2010 13:26, Felipe Magno de Almeida
On Mon, Jun 7, 2010 at 7:17 AM, Igor R
wrote: You would destroy the socket. Delete'ing it,
So it would be always necessary to store a ptr to a socket? Then delete the socket, which was passed by reference to async_read()? Doesn't sound good, does it?
I see. You would call cancel first. Unfortunately cancelling is not very reliable. But cancelling is what is conceptually right here IMHO.
or using a boost::optional.
But it's not optional, according to its semantics...
It seems to me. If you call close you want the socket released. That a zombie socket remains is a design problem. Zombie objects should be avoided. I don't think it can be implementable without unnecessary overhead though.
Regards, -- Felipe Magno de Almeida _______________________________________________ Boost-users mailing list Boost-users@lists.boost.org http://lists.boost.org/mailman/listinfo.cgi/boost-users
-- Dmytro Ovdiienko e-mail: dmitriy.ovdienko@gmail.com skype: dmitriy.ovdienko@gmail.com mobile: +38050-1909731