Hello,
I am suspcious about:
{* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
*}
{ Triggered when socket is closed. Need to inform server socket to
date }
{ client list and trigger client disconnect
}
procedure TWSocketMTClient.TriggerSessionClosed(ErrCode : Word);
begin
if not FSessionClosedFlag then begin
FSessionClosedFlag := TRUE;
if Assigned(FServer) then begin
try
FServer.TriggerClientDisconnect(Self, ErrCode);
finally
{ Calling Destroy will automatically remove client from list
because }
{ we installed a notification
}
Release;
end;
end;
inherited TriggerSessionClosed(ErrCode);
end;
end;
This is called in the worker thread context and I removed the postmessage
for speed. But I am not sure of Release()--is it ok to be called before
inherited TriggerSessionClosed()?
Left problems:
- lock up
- memory leak
bad enough? ;((
SZ
----- Original Message -----
From: "Fastream Technologies" <[EMAIL PROTECTED]>
To: "ICS support mailing" <[email protected]>
Sent: Friday, March 24, 2006 7:49 PM
Subject: Re: [twsocket] MT HTTP Server ready with a single -minor- problem
> Hello,
>
> There has to be a timing problem in the below code that causes an AV and
> that should be the source of the server stopping problem. Does anyone see
> it?
>
> It's been 9 hours today and that's enough for today for me with this... ;(
>
> Regards,
>
> SZ
>
> ----- Original Message -----
> From: "Fastream Technologies" <[EMAIL PROTECTED]>
> To: "ICS support mailing" <[email protected]>
> Sent: Friday, March 24, 2006 12:07 PM
> Subject: [twsocket] MT HTTP Server ready with a single -minor- problem
>
>
>> Hello Francois,
>>
>> The system compiles and runs now. It gives 790 requests/sec on my XP Home
>> :)
>> until time_wait sockets reach a certain level where it starts to drop
>> connections!! (httpServerThread is the listener thread. Inside it there
>> is
>> a
>> THTTPServer which is a descendent of THttpMTServer of Pascal.)
>>
>> Example C++ Usage of the attached code:
>> Now TriggerClientConnect and disconnect are called from worker thread
>> context.
>>
>> void __fastcall THTTPThread::processServerThreadMessage(const MSG &msg)
>> {
>> if(msg.message == WM_HTTP_CLIENT_THREAD_ATTACH) // detachment is done in
>> serverThread
>> {
>> TWSocketMTServer *socketServer =
>> (TWSocketMTServer*)(void*)msg.wParam;
>> httpServerClientClass *httpClient = new
>> httpServerClientClass(socketServer);
>> httpClient->affinityThread = this;
>> socketServer->AfterClientCreated(httpClient, 0,
>> msg.lParam);
>> }
>> else
>> DispatchMessage(msg);
>>
>> // this is the worker thread message pump
>>
>> void __fastcall httpServerThread::HTTPServerCreateClient(int NewHSocket)
>> {
>> THTTPThread *affinityThread =
>> httpServerClientThreadManager->getHTTPThread();
>>
>> if(affinityThread)
>> while(!PostThreadMessage(affinityThread->ThreadID,
>> WM_HTTP_CLIENT_THREAD_ATTACH, (WPARAM)HTTPServer->WSocketServer,
>> (LPARAM)NewHSocket))
>> ::Sleep(1);
>> }
>> //---------------------------------------------------------------------------
>>
>> Now the slight problem: when I run in debug mode in Memproof, I get 11MB
>> used report but task manager reports 45MB after a 5min test! This is a
>> big
>> problem for end user tests!!!
>>
>> 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
--
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