You get the session closed after calling ThreadDetach ?
--
[EMAIL PROTECTED]
http://www.overbyte.be

----- Original Message ----- 
From: "Arno Garrels" <[EMAIL PROTECTED]>
To: "ICS support mailing" <twsocket@elists.org>
Sent: Friday, June 23, 2006 8:55 AM
Subject: Re: [twsocket] V6 ThreadDetach #2


> Already got it! It is as I wrote in my previous mail...
>
> procedure TWSocketClient.TriggerSessionClosed(ErrCode : Word);
> begin
>    if not FSessionClosedFlag then begin
>        FSessionClosedFlag := TRUE;
>        if Assigned(FServer) then
>            PostMessage(Server.Handle, Server.FMsg_WM_CLIENT_CLOSED, 
> ErrCode,
>                        {$IFDEF CLR}
>                        Integer(IntPtr(Self.HandleGc)));
>                        {$ENDIF}
>                        {$IFDEF WIN32}
>                        LongInt(Self));
>                        {$ENDIF}
>        inherited TriggerSessionClosed(ErrCode);
>    end;
> end;
>
> A getter that automatically allocates a new window handle is a bad 
> solution!
>
>
>
> Francois Piette wrote:
>> For debugging purpose, do this:
>>
>> Create a global public variable in wndcontrol, initialize it to false.
>>> From your thread exceute, just after threaddetach, set it to true.
>>> From the routine where the window handle is allocated (I haven't the
>>> code
>> here, I do from my head), add this:
>> if MyGlobalVar then
>>     OutputDebugString('Got it');
>> Then place a breakpoint on the OutputDebugString line and run your
>> program. When (if) the breakpoint is hit, have a look at the stack
>> trace to understand where it comes from.
>>
>> Contribute to the SSL Effort. Visit
>> http://www.overbyte.be/eng/ssl.html --
>> [EMAIL PROTECTED]
>> Author of ICS (Internet Component Suite, freeware)
>> Author of MidWare (Multi-tier framework, freeware)
>> http://www.overbyte.be
>>
>>
>> ----- Original Message -----
>> From: "Arno Garrels" <[EMAIL PROTECTED]>
>> To: "ICS support mailing" <twsocket@elists.org>
>> Sent: Thursday, June 22, 2006 9:37 PM
>> Subject: Re: [twsocket] V6 ThreadDetach #2
>>
>>
>>> Arno Garrels wrote:
>>>> Francois PIETTE wrote:
>>>>>> Not sure what you mean. The problem is that even if you call
>>>>>> ThreadDetach (which is to make the component windowless) you
>>>>>> cannot be sure that the component will not allocate another
>>>>>> window handle somewhere in the background
>>>>>> after that call to ThreadDetach.
>>>>>
>>>>> I don't see how the component would create another window handle
>>>>> once ThreadDetach has been called: no event will be generated
>>>>> anymore. Only the currently executing event will continue
>>>>> execution ans far as memory serve me well, no event recreate a
>>>>> window handle.
>>>
>>> Typo, sorry!
>>>
>>> Correction:
>>>
>>> If so, why do I get this exception? ThreadDetach is executed and
>>> property Handle is set to zero. Nevertheless the exeption is raised.
>>> So a window handle must have been allocated after the call to
>>> ThreadDetach somewhere. Please tell me what might be wrong with the
>>> very simple code I posted before. There's no deadlock, sure.
>>> Especially not if you exchange WaitFor by WaitForSingleObject. Also,
>>> as far as I can see entire methode ThreadDetach is blocking, so the
>>> thread shouldn't signal before the window handle was set to zero,
>>> right? --
>>> 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