![]() |
Indy TCP Server und Threads
Hallo,
ich habe irgendwo in einem Programmteil von mir ein Memoryleak und ich finde es einfach nicht. Dazu habe ich mal eine Frage und zwar verwende ich einen TIdTCPServer um bestimmt Prozesse zu überwachen. Das ganze läuft so ab, zuerst wird ein Request gesendet:
Delphi-Quellcode:
Danach werden die ASender.Threads korrekt synchronisiert an einen Thread übergeben, welcher parallel zur Anwendung läuft, Daten sammelt und an die connecteten Clients übergibt.
procedure TMainForm.CommandServerinitPDSWatchCommand(ASender: TIdCommand);
begin syncAddLog('initpdswatch von ' + ASender.Thread.Connection.Socket.Binding.PeerIP + ' empfangen'); if ASender.Params.Count > 1 then PDS.addWatcher(ASender.Thread, strToIntDef(ASender.Params[0], pds_WatchAll), boolean(strToIntDef(ASender.Params[1], 0))); end; Das ganze sieht ungefähr so aus:
Delphi-Quellcode:
Nun wie gesagt wird das Programm immer grösser und ich suche bereits seit 2 Wochen nach dem Leak, der Code ist ansonsten 100%ig korrekt und irgendwelche MemCheck - Hilfsunits haben ebenfalls nichts gefunden. Das Einzige was mir noch einfällt ist, dass es irgendwie ein Problem mit dem Indyserver in Bezug auf synchronisierung(?) geben könnte.
// TOSend(Pointerliste) enthält nun alle connections und Daten die versendet werden müssen
for wdh:= ToSend.count-1 downto 0 do begin SI:= ToSend[wdh]; if not terminated then begin try SI.PeerThread.Connection.OpenWriteBuffer; SI.Daten.sendOverIndyPeerThread( Si.PeerThread, Si.komprimiert, SI.abZeit); SI.PeerThread.Connection.CloseWriteBuffer; except syncAddLog('watchThread Exception 4'); try SI.PeerThread.Connection.CancelWriteBuffer; except syncAddLog('watchThread Exception 4.5'); end; end; end; dispose( SI); end; Ansonsten verwende ich noch exzessiv TBitmap in dem Thread, könnte es sein dass dieses ein Memoryleak hat? Kann mir da jemand was zu sagen, darf man so auf die PeerConnections zugreifen? Danke, Volker |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:20 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz