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. > The other > problem was because of wrong package lib included in the project. What "other problem" do you mean (sounds very mysterious to me)? > 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