Hello Fastream,

I recall it returns 0 for all fields if not using standard memory
manager. Arnt you ?

---
Rgds, Wilfried [TeamICS]
http://www.overbyte.be/eng/overbyte/teamics.html
http://www.mestdagh.biz

Tuesday, March 21, 2006, 09:22, Fastream Technologies wrote:

> GetHeapStatus always returns 0 for all fields! Why could this be?

> Regards,

> SZ

> ----- Original Message ----- 
> From: "Wilfried Mestdagh" <[EMAIL PROTECTED]>
> To: "ICS support mailing" <[email protected]>
> Sent: Monday, March 20, 2006 4:39 PM
> Subject: Re: [twsocket] Server problem (leaking memory)


>> Hello,
>>
>> That is a lot leaking ;(
>> Use GetHeapStatus and AllocMemSize to check at regular places in your
>> code to find out where it starts to eat...
>>
>> ---
>> Rgds, Wilfried [TeamICS]
>> http://www.overbyte.be/eng/overbyte/teamics.html
>> http://www.mestdagh.biz
>>
>> Monday, March 20, 2006, 14:34, Fastream Technologies wrote:
>>
>>> Hello,
>>
>>> Our multi-threaded web server leaks 16-32KB per socket now. I hacked a
>>> lot
>>> to make async ICS a MT web server but there has been many issues as ICS
>>> has
>>> no MT web server example. Note that this leak cannot be catched by
>>> CodeGuard.
>>
>>> I hope we can figure this out together. Up to triggerSessionclosed,
>>> everything is as usual except that in onconnect, a message is sent to the
>>> worker thread that only does:
>>
>> clientObject->>ThreadAttach();
>>
>>> which works fine.
>>
>>> Now the problem starts here:
>>
>>> void __fastcall httpServerClientClass::WndProc(TMessage &msg)
>>> {
>>>         if(msg.Msg == WM_HTTP_CLIENT_THREAD_DETACH)
>>>         {
>>>                 httpServerClientClass *clientObject =
>>> (httpServerClientClass*)(void*)msg.WParam;
>>
>>>
>>> clientObject->serverThread->HTTPServerClientDisconnected(NULL,
>>> clientObject, msg.LParam);
>>
>>>                 clientObject->ThreadDetach();
>>>                 FCloseInvoked = false;
>>>                 setState(wsInvalidState);
>>
>>>                 PostThreadMessage(serverThread->ThreadID,
>>> WM_DESTROY_HTTP_CLIENT, (WPARAM)clientObject, 0);
>>>         }
>>>         else
>>>                 THttpConnection::WndProc(msg);
>>> }
>>> //---------------------------------------------------------------------------
>>> void __fastcall
>>> httpServerClientClass::TriggerSessionClosed(WORD ErrCode)
>>> {
>>>         if(!FSessionClosedFlag)
>>>         {
>>>                 FSessionClosedFlag = true;
>>>                 OnDataSent = NULL;
>>>                 setOnDataAvailableToNULL();
>>>                 endOfResponse();
>>>                 setState(wsClosed);
>>
>>>                 TCustomLineWSocket::TriggerSessionClosed(ErrCode);
>>
>>>                 PostMessage(Handle, WM_HTTP_CLIENT_THREAD_DETACH,
>>> (WPARAM)this, ErrCode);
>>>         }
>>> }
>>> //---------------------------------------------------------------------------
>>
>>> What I am trying to avoid by setting FState = wsClosed in trigger.. is to
>>> stop the close() routine called after trigger... being executed after the
>>> WM_HTTP_CLIENT_THREAD_DETACH because everything must be in exact order.
>>> If I
>>> do not set state to wsinvalidstate or anything other than wsclosed, then
>>> the
>>> window is leaked. Oops, I almost forgot to show you the
>>> WM_DESTROY_HTTP_CLIENT:
>>
>>> case WM_DESTROY_HTTP_CLIENT:
>>>                 {
>>>                         httpServerClientClass *client =
>>> (httpServerClientClass*)(void*)msg.wParam;
>>
>>>                         client->ThreadAttach();
>>
>>>                         delete client;
>>
>>>                         break;
>>>                 }
>>
>>> I have been working on this bug since Friday and it is very annoying so
>>> hope
>>> you can help me!
>>
>>> Best Regards,
>>
>>> SZ
>>
>>
>> -- 
>> 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