30 Apr
2009
30 Apr
'09
8:52 a.m.
But I ask you to point to probable reasons of such behaviour that breaks asio rules..
According to your description, probable reason is a blocked io_service thread. Maybe in some situation one of the handlers (which are called from within io_serivce thread) do not return - then any subsequent handler won't be invoked. Probably the blockage is released after you close the socket - due to some design issues, so at this point all the queued handlers get invoked.