Arno, In the last code you sent, this problem STILL exists! The other problem was because of wrong package lib included in the project. Sorry for that.
Best Regards, SZ ----- Original Message ----- From: "Francois PIETTE" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Monday, June 05, 2006 2:35 PM Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : Still one problem. Arno fixed it (He sent a private message to me). : Move the line : FWndHandler := nil; // THIS ONE ADDED : from ThreadDetach to DeallocateHWnd so that the later looks like: : procedure TIcsWndControl.DeallocateHWnd; : begin : if FHandle = 0 then : Exit; // Already done : : GWndHandlerPool.Lock; : try : FreeMsgHandlers; : if Assigned(FWndHandler) and (FWndHandler.FMsgCnt <= 0) then : GWndHandlerPool.FreeWndHandler(FWndHandler); : FHandle := 0; : FWndHandler := nil; // THIS ONE ADDED : finally : GWndHandlerPool.UnLock; : end; : end; : : Thank to Arno. : : -- : Contribute to the SSL Effort. Visit http://www.overbyte.be/eng/ssl.html : -- : [EMAIL PROTECTED] : http://www.overbyte.be : : : : ----- Original Message ----- : From: "Francois PIETTE" <[EMAIL PROTECTED]> : To: "ICS support mailing" <twsocket@elists.org> : Sent: Monday, June 05, 2006 1:11 PM : Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : : : > Problem fixed ! : > : > In OverbyteIcsHttpProt.pas, add: : > : > {$IFDEF COMPILER2_UP} : > procedure THttpCli.ThreadAttach; : > begin : > inherited ThreadAttach; : > FCtrlSocket.ThreadAttach; : > end; : > : > procedure THttpCli.ThreadDetach; : > begin : > inherited ThreadDetach; : > FCtrlSocket.ThreadDetach; : > end; : > {$ENDIF} : > : > Don't forget to add the declarations in the public section. : > : > In OverbyteIcsWndControl, add a line in ThreadDetach so that it looks : > like: : > procedure TIcsWndControl.ThreadDetach; : > begin : > if GetCurrentThreadID <> FThreadID then : > raise EIcsException.Create('Cannot detach from another thread'); : > Self.DeallocateHWnd; : > FWndHandler := nil; // THIS ONE ADDED : > end; : > : > : > In OverbyteIcsWSocket.pas, delete the declaration of : > TCustomWSocket.FThreadID. : > : > That's it. : > Should work. At least it work in my small test prog: : > Create a form, drop a TButton, a TMemo and a THttpCli. Add the following : > code: : > : > unit OverbyteIcsSimpleThread1; : > : > interface : > : > uses : > Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, : > Forms, : > Dialogs, StdCtrls, OverbyteIcsWndControl, OverbyteIcsWSocket, : > OverbyteIcsHttpProt; : > : > type : > TWorkerThread = class(TThread) : > public : > FHttpCli : THttpCli; : > procedure HttpCliRequestDone(Sender : TObject; RqType: THttpRequest; : > ErrCode : Word); : > procedure Execute; override; : > procedure ShowDoc; : > end; : > : > TForm1 = class(TForm) : > HttpCli1: THttpCli; : > DoButton: TButton; : > Memo1: TMemo; : > procedure DoButtonClick(Sender: TObject); : > private : > FWorkerThread : TWorkerThread; : > end; : > : > var : > Form1: TForm1; : > : > implementation : > : > {$R *.dfm} : > : > procedure TWorkerThread.Execute; : > begin : > FHttpCli.ThreadAttach; : > FHttpCli.MultiThreaded := TRUE; : > FHttpCli.URL := 'http://localhost'; : > FHttpCli.RcvdStream := TMemoryStream.Create; : > FHttpCli.OnRequestDone := HttpCliRequestDone; : > FHttpCli.GetASync; : > FHttpCli.MessageLoop; : > FHttpCli.ThreadDetach; : > FHttpCli.MultiThreaded := FALSE; : > end; : > : > procedure TWorkerThread.HttpCliRequestDone(Sender : TObject; RqType: : > THttpRequest; ErrCode : Word); : > begin : > FHttpCli.RcvdStream.Seek(0, 0); : > Synchronize(ShowDoc); : > FHttpCli.RcvdStream.Free; : > FHttpCli.RcvdStream := nil; : > PostMessage(FHttpCli.Handle, WM_QUIT, 0, 0); : > end; : > : > procedure TWorkerThread.ShowDoc; : > begin : > Form1.Memo1.Lines.LoadFromStream(FHttpCli.RcvdStream); : > end; : > : > procedure TForm1.DoButtonClick(Sender: TObject); : > begin : > HttpCli1.ThreadDetach; : > FWorkerThread := TWorkerThread.Create(TRUE); : > FWorkerThread.FreeOnTerminate := TRUE; : > FWorkerThread.FHttpCli := HttpCli1; : > FWorkerThread.Resume; : > end; : > : > end. : > -- : > [EMAIL PROTECTED] : > http://www.overbyte.be : > : > : > : > ----- Original Message ----- : > From: "Francois PIETTE" <[EMAIL PROTECTED]> : > To: "ICS support mailing" <twsocket@elists.org> : > Sent: Monday, June 05, 2006 12:25 PM : > Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : > : > : >> Yes, I found the problem. More complex to solve than what I thought : >> first. : >> : >> -- : >> [EMAIL PROTECTED] : >> http://www.overbyte.be : >> : >> ----- Original Message ----- : >> From: "Fastream Technologies" <[EMAIL PROTECTED]> : >> To: "ICS support mailing" <twsocket@elists.org> : >> Sent: Monday, June 05, 2006 11:37 AM : >> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : >> : >> : >>> Francois, : >>> : >>> Have you been able to reproduce the problem there? : >>> : >>> Regards, : >>> : >>> SZ : >>> : >>> ----- Original Message ----- : >>> From: "Fastream Technologies" <[EMAIL PROTECTED]> : >>> To: "ICS support mailing" <twsocket@elists.org> : >>> Sent: Sunday, June 04, 2006 6:24 PM : >>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : >>> : >>> : >>>> AFAIU, instead of FWindowHandle being defined as window, we now have : >>>> the : >>>> entire hierarchy being derived from a Twndcontrol which pools and : >>>> shares : >>>> the : >>>> windows. But I am clueless in terms of this bug as well. I sent a : >>>> private : >>>> email to Francois asking for consultancy about this. : >>>> : >>>> Thanks anyway, : >>>> : >>>> SZ : >>>> : >>>> ----- Original Message ----- : >>>> From: "Arno Garrels" <[EMAIL PROTECTED]> : >>>> To: "ICS support mailing" <twsocket@elists.org> : >>>> Sent: Sunday, June 04, 2006 6:06 PM : >>>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : >>>> : >>>> : >>>>> Fastream Technologies wrote: : >>>>>> Nothing changes. This is my second answer to this question as : >>>>>> sometimes my email server gets swamped :(... : >>>>>> : >>>>>> I still get the exception even though the package compiles with no : >>>>>> errors. : >>>>> : >>>>> Looks like a bit more complicated. Francois probably knows better how : >>>>> to fix it, I still haven't fully got the logic of the new version, : >>>>> sorry. : >>>>> : >>>>>> : >>>>>> Regards, : >>>>>> : >>>>>> SZ : >>>>>> : >>>>>> ----- Original Message ----- : >>>>>> From: "Arno Garrels" <[EMAIL PROTECTED]> : >>>>>> To: "ICS support mailing" <twsocket@elists.org> : >>>>>> Sent: Sunday, June 04, 2006 5:31 PM : >>>>>> Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem : >>>>>> : >>>>>> : >>>>>>> Fastream Technologies wrote: : >>>>>>>> It is used here: : >>>>>>> : >>>>>>> Yes I know, but what happens? As Francois already supposed it : >>>>>>> is in fact redefined and never assigned in TCustomWSocket. : >>>>>>> : >>>>>>> : >>>>>>> --- : >>>>>>> Arno Garrels [TeamICS] : >>>>>>> http://www.overbyte.be/eng/overbyte/teamics.html : >>>>>>> : >>>>>>> : >>>>>>> : >>>>>>> -- : >>>>>>> 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 : >>>>> -- : >>>>> 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 : >>>> : >>>> -- : >>>> 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 : >>> : >>> -- : >>> 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 : >> : >> -- : >> 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 : > : > -- : > 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 : : -- : 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 -- 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