Henrik, I still guess that it's caused by any crap process running on this box. Why else does it not happen on other computers as well? I don't know the Norman software, but have you tried to uninstall it? I would also check the auto-started processes as well and turn them off one after the other. Then I would search for strange processes in the process list that do not exist on the other, working boxes. That's at least worth a try.
--- Arno Garrels [TeamICS] http://www.overbyte.be/eng/overbyte/teamics.html Henrik wrote: > Hello Wilfred! > > Yes, I get the same behavior when running the application from within > the > IDE. So I traced the code up until the application stops to respond. > (And > yes, we mean the same thing: the application freezes or hangs so that > You > can't quit and You can not move or close the window.) > > The trace disappears in the function > WSocket_Synchronized_WSAAsyncSelect in > WSocket.pas. You can see the actual line where something happens in > the code > snippet below: > > function WSocket_Synchronized_WSAAsyncSelect( > s: TSocket; HWindow: HWND; > wMsg: u_int; lEvent: Longint): Integer; > begin > SaveTrace('Start WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect'); > > if @FWSAAsyncSelect = nil then > @FWSAAsyncSelect := WSocketGetProc('WSAAsyncSelect'); > > SaveTrace('Hang on the line below this row: Result := > FWSAAsyncSelect...'); > > Result := FWSAAsyncSelect(s, HWindow, wMsg, lEvent); // <------ > Something happens here > > SaveTrace('Hang on the line obove this row: Result := > FWSAAsyncSelect...'); > SaveTrace('End WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect'); > end; > > Does this make any sense? > Best Regards > Henrik > > > > Ps. If there by any chance is someone who want a bit more "in depth > facts", > I also attached the following trace logs :-) > > I added the SaveTrace procedure seen in the snippet above at the > first line > and the last line of the following functions and procedures: > WSocket.pas: function XSocketWindowProc > WSocket.pas: procedure TCustomWSocket.WndProc > WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > SmtpProt.pas: procedure TCustomSmtpClient.WSocketDnsLookupDone > WSocket.pas: procedure TCustomSocksWSocket.Connect; > WSocket.pas: procedure TCustomWSocket.Connect > WSocket.pas: function WSocket_Synchronized_WSAAsyncSelect > > So after the ConnectButton in the example is pressed I get the > following > results on computers where everything works: > > First time the SmtpTestForm is created and ConnectButton is pressed: > -------------------------------------------------------------------- > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > Start SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > Start WSocket.pas: procedure TCustomSocksWSocket.Connect > Start WSocket.pas: procedure TCustomWSocket.Connect > Start WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > Hang on the line below this row: Result := > FWSAAsyncSelect... > Hang on the line obove this row: Result := > FWSAAsyncSelect... > End WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > End WSocket.pas: procedure TCustomWSocket.Connect > End SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > End WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > End WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > > > I close the SmtpTestForm, release it and create it again. > When ConnectButton is pressed this time I get the following trace: > ------------------------------------------------------------------ > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > Start SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > Start WSocket.pas: procedure TCustomSocksWSocket.Connect > Start WSocket.pas: procedure TCustomWSocket.Connect > Start WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > Hang on the line below this row: Result := > FWSAAsyncSelect... > Hang on the line obove this row: Result := > FWSAAsyncSelect... > End WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > End WSocket.pas: procedure TCustomWSocket.Connect > End SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > End WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > End WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > > > > So now to the interesting part. On computers where the application > freezes I > get the following trace. > First time the SmtpTestForm is created and ConnectButton is pressed: > -------------------------------------------------------------------- > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > Start SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > Start WSocket.pas: procedure TCustomSocksWSocket.Connect > Start WSocket.pas: procedure TCustomWSocket.Connect > Start WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > Hang on the line below this row: Result := > FWSAAsyncSelect... > Hang on the line obove this row: Result := > FWSAAsyncSelect... > End WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > End WSocket.pas: procedure TCustomWSocket.Connect > End SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > End WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > End WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: procedure TCustomWSocket.WndProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > > > I close the SmtpTestForm, release it and create it again. > When ConnectButton is pressed this time I get the following trace: > ------------------------------------------------------------------ > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > End WSocket.pas: function XSocketWindowProc > Start WSocket.pas: function XSocketWindowProc > Start WSocket.pas: procedure TCustomWSocket.WndProc > Start WSocket.pas: procedure TCustomWSocket.WMAsyncGetHostByName > Start WSocket.pas: procedure TCustomWSocket.TriggerDNSLookupDone > Start SmtpProt.pas: procedure > TCustomSmtpClient.WSocketDnsLookupDone > Start WSocket.pas: procedure TCustomSocksWSocket.Connect > Start WSocket.pas: procedure TCustomWSocket.Connect > Start WSocket.pas: function > WSocket_Synchronized_WSAAsyncSelect > Hang on the line below this row: Result := > FWSAAsyncSelect... > > > > > > > > -----Ursprungligt meddelande----- > Från: [EMAIL PROTECTED] [mailto:twsocket- > [EMAIL PROTECTED] För > Wilfried Mestdagh > Skickat: den 12 december 2006 13:17 > Till: ICS support mailing > Ämne: Re: [twsocket] Freeze when using smtp after recreating its > parentform > > Hello Henrik, > > Do you have the same problem in the IDE ? Because this way you can > check > witch code line never comes back (freeze). If not eventually open a > console > window and write some debug information into it to see where it > happens. > > Your approach is normal. I do this all the time, however I almost > never use > forms for it. Normally I have an object containing the component, eg > TSmtpClient, another object that creates / handles / destroy the > TSmtpClient > objects. But in principle it is the same. It can as whell be a > DataModule, a > Form or whatever other object. > > Question: We do understeand the word 'Freeze' the right way ? Form > cannot > moved, closed, application cannot quit, etc... Right ? > > --- > Rgds, Wilfried [TeamICS] > http://www.overbyte.be/eng/overbyte/teamics.html > http://www.mestdagh.biz -- 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