
Christopher Kohlhoff wrote:
Can you please add some debugging code to confirm whether the number of items dequeued using GetQueuedCompletionStatus differs when you use the 10msec timeout. Thanks.
Hmm, not exactly sure what you mean. In my code I have the dtors of my connection objects emit a message when they are called. Since they use the shared_from_this trick they are invoked when the overlapped structure is been deleted since they are bound to them. So I am pretty sure I can see when the call to destruct the overlapped is missing. On the other hand I can see that the socket is closed properly since the client receives the shutdown request. I would be glad if you could give me another hint which kind of debug message would be helpful to you. On the other hand, perhaps some (mathematical) reasoning also can help: If the socket is closed, which property guarantees that the queued completion status invoked with zero timeout will see the associated overlapped for sure? Or put it another way: why not waiting infinitely when we are sure there must be something pending? Why zero timeout? Regards Roland