----- Original Message ----- From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Wednesday, August 22, 2007 11:16 AM Subject: Re: [twsocket] ThreadDEtach with THttpConnection problem
> Francois Piette wrote: >>> In triggersessionclosed, I postthreadmessage to a message handler in >>> the same worker thread which then thread-detaches and posts the >>> object to listener thread. However, in every 1-2 hours, under heavy >>> load, the worker thread gives an AV which I suspect is due to a >>> recv/send callback event being launched after threaddetach. How can >>> I prevent this? >> >> If you had looked at the source code, you could have seen that when >> ThreadDetach is called, the socket is asked to stop sending >> notifications (WSAASyncSelect is called with nul mask) and the hidden >> window is cancelled. So technically speaking, no notification can >> take place before you attach the socket again to a thread in which >> case a new hidden window is assigned and WSAASyncSelect called to >> request notifications from winsock. >> >> In ICS-V6, the hidden window is shared by several components. >> ThreadDetach unregister the messages which where used by the >> component. > > Even if there were still such unregistered messages pending in the message > queue due to the hidden window still exists (handling messages for other > components of that thread) those unregistered messages won't be touched > by the component but handled by DefWindowProc, so no problem. If the > hidden window has been destroyed Windows flushes the thread message > queue so GetMessage() should never see a message for a non-existing > window. How does DefWindowProc work? What if the handle posted is no longer in that thread? I think we are getting a clue here... Sharing the same window handle in V6 could be the reason for my AV. Regards, SZ -- To unsubscribe or change your settings for TWSocket mailing list please goto http://www.elists.org/mailman/listinfo/twsocket Visit our website at http://www.overbyte.be