Registriert seit: 20. Mär 2006
81 Beiträge
Delphi 2006 Enterprise
|
Speicherleck im Indy Server!?
5. Jun 2006, 14:29
Ich habe eine Applikation mit einem IndyServer, bei der mir der FastMM Speicherlöcher anzeigt.
Auf der Suche nach dem Fehler habe ich folgenden Code in IdThread.pas gefunden:
initialization
SetThreadName('Main'); {do not localize}
GThreadCount := TIdThreadSafeInteger.Create;
finalization
// This call hangs if not all threads have been properly destroyed.
// But without this, bad threads can often have worse results. Catch 22.
// TIdThread.WaitAllThreadsTerminated;
{$IFDEF IDFREEONFINAL}
//only enable this if you know your code exits thread-clean
Sys.FreeAndNil(GThreadCount);
{$ENDIF}
Nun ja - im initialization gibt's ein TIdThreadSafeInteger.Create, aber im finalization wird dies nur mit einem DebuggerSwitch freigegeben.
Hat das auch schon jemand entdeckt?
Was heisst denn ThreadClean? genügt ein {$DEFINE IDFREEONFINAL} und wo soll ich den am besten hintun?
|