Hello, ----- Original Message ----- From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Thursday, June 08, 2006 7:48 PM Subject: Re: [twsocket] ICSv6 Thread Attach/Detach problem
: Fastream Technologies wrote: : > Arno, : > : > In the last code you sent, this problem STILL exists! : : I'm afraid, the fix below is in the code since Monday. Perhaps we need another -more comprehensive- fix. Francois, AFAIK you were able to reproduce the problem, right? Could you check with the latest code. Something must have gone bad because when I said it was fixed, it was fixed. : : > The other : > problem was because of wrong package lib included in the project. : : What "other problem" do you mean (sounds very mysterious to me)? I mean the half downloads problem. That was because two ics packages were linked. :o( Sorry for bothering you guys. Your suggestion that the package was not good worked for me to find out... Best Regards, SZ : : > 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 -- 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