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

Reply via email to