----- Original Message ----- From: "Arno Garrels" <[EMAIL PROTECTED]> To: "ICS support mailing" <twsocket@elists.org> Sent: Monday, March 20, 2006 3:54 PM Subject: Re: [twsocket] Server problem (leaking memory)
> You say that you post a message to the worker thread to let it > ThreadAttach. > What do you do until the worker thread has attached?? You cannot just post > a message, you have to wait until the workerthread has allocated the > window. { Called when a session is available, that is when a client is nnecting } procedure TCustomWSocketServer.TriggerSessionAvailable(Error : Word); var Client : TWSocketClient; NewHSocket : TSocket; begin {$IFDEF DEBUG_OUTPUT} OutputDebugString('OnSessionAvailable'); {$ENDIF} { Call parent event handler } inherited TriggerSessionAvailable(Error); { In case of error, do nothing } if Error <> 0 then Exit; NewHSocket := Accept; {$IFDEF DEBUG_OUTPUT} OutputDebugString('NewHSocket = ' + IntToStr(NewHSocket)); {$ENDIF} Inc(FClientNum); Client := FClientClass.Create(Self); TriggerClientCreate(Client); Client.Name := Name + 'Client' + IntToStr(FClientNum); Client.Banner := FBanner; Client.Server := Self; {$IFNDEF NO_DEBUG_LOG} Client.IcsLogger := IcsLogger; { V5.04 } {$ENDIF} Client.Dup(NewHSocket); TriggerClientConnect(Client, Error); << HERE THREADATTACH() MESSAGE IS THROWN{ Ok, the client is still there, process with the connection } if (FMaxClients > 0) and (FMaxClients < ClientCount) then begin { Sorry, toomuch clients } Client.Banner := FBannerTooBusy; Client.StartConnection; Client.Close; end else Client.StartConnection; end; In this function, there is no job done after threadattach message is thrown, no job is done in startconnection as the banner is null. But I know this is not a formal way. Any idea how to sync threadattach? 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