![]() |
idThread.pas, idStack.pas Memoryleak in Delphi2009
Hallo,
wollte nur mal kurz wissen ob das normal ist, dass die beiden besagten Units unter D2009 Architect nen Memoryleak auslösen? Zeigt mir zumindest das Eurekalog an... Ein Blick in beide Units ergibt ein {$IFDEF REGISTER_EXPECTED_MEMORY_LEAK} ???????????????????? Öhm nicht nur das es sehr nervig ist, aber kann man das ganze vielleicht sauber umgehen? Gruß s! |
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Hi,
egal wie viele Fragezeichen du schreibst, das ist "as-designed" - und zwar seit Jahren. Google oder ein Blick in den Source von IdThread.pas hätte Dir hier schon Antwort gegeben ;) Die Freigabe der Objekte erfolgt zur Sicherheit (!) erst mit dem tatsächlichen Ende des Prozesses durch das OS und nicht im Finalization-Abschnitt. Hierbei "leaken" ein threadsicherer Integer und eine CriticalSection. Zitat:
Zitat:
Wende Dich sonst an den Hersteller von EurekaLog, um in Erfahrung zu bringen, wie Du dieses Pseudo-Leak unterdrücken kannst. Bei madExcept zumindest geht es, bei FastMM4 kann man es auch. Gruß Assertor Nachtrag: Gerade mal per Google über EurekaLog gesucht und in der ![]() Frage: Zitat:
Zitat:
|
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Hehe Danke für die Antworten, was noch im Eutekalog Forum zu finden war ist, dass die Funtkion um Leaks geziehlt zu ignoerieren erst ab Version 7 zur Verfügung stehen soll!
Gruß s! |
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Zitat:
|
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Zitat:
Sollte gehen, wenn man die TIdCriticalSection = class(TCriticalSection) mit der RTLCriticalSection ersetzt und einen Wrapper für .Enter und .Leave schreibt - sonst muß Du zu viele CodeStellen anpassen. Aber gerne, wobei das SVN jetzt bei Atozed liegt. Unter Umständen kannst Du den Schreibzugriff nicht reaktivieren, je nach Credentials. Meld Dich doch mal in der Core Team Mailing List - da bist Du bestimmt noch drin, richtig? Auf die Diskussion mit Remy LeBeau wegen des Expected Memory Leaks wär ich gespannt... ;) Gruß Assertor |
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Zitat:
|
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Ich habe mir das jetzt nochmal genauer angeschaut. Und ich muss sagen, mir diesem Sch**ß Delphi.NET/C# Port Indy 10 sowas von umständlich und chaotisch geworden ist, dass ich nun überlege, mir eine Alternative zu suchen. Sorry, aber den Schrott tue ich mir nicht mehr an.
TIdThreadSafeInteger ist ja wohl der Abschuss. Ein InterlockIncrement/Decrement hätte es auch getan. Da braucht man kein Objekt, dass ein TCriticalSection Objekt erstellt um dann das Increment/Decrement ausführen zu können. Nein Danke. |
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Hi Andreas,
fraglich, ob das alles wirklich in diesen Thread gehört... Du bist wohl gerade über die hohe Abstraktionsschicht und die Plattformkompatibilität gestolpert ;) Wer den TIdThreadSafeInteger so gebaut hat, weiß ich nicht, da ich erst seit diesem Jahr dabei bin. Grundsätzlich wird aber lieber eine Sicherheit zu viel als zu wenig eingebaut - eben im Hinblick auf die verschiedenen Platformen. Gruß Assertor P.S.: Reg Dich nicht auf, guck mal lieber hier rüber, ![]() |
Re: idThread.pas, idStack.pas Memoryleak in Delphi2009
Hallo,
Nachtrag hierzu: Zitat:
Sobald das für alle Plattformen gelöst ist, kann man darüber diskutieren. Für Win wäre natürlich ein InterlockedIncrement/Decrement besser, aber wenn Indy eins nicht braucht, dann noch mehr IFDEFs! Zitat:
[OT]Und grundsätzlich: Bei Euch im Team JEDI sieht es nicht viel besser aus ;) Also aufpassen mit dem Glashaus und den Steinen :mrgreen: Wenn man versucht eine Komponente zu "De-JEDI-fizieren", also wieder standalone zu machen, stehen einem die Haare zu berge... Nachdem ich ewig lange auf dem JEDI Mantis versucht hatte, die Fehler der JvLinkLabel im Anti-Aliasing klarzumachen (mit Text, Demo, Bilder) kam ein Fix, der halbherzig ist - obwohl ich selbst einen bereitgestellt hatte. Auf die Mails dazu in der alten Newsgroup (talkto) wurde garnicht geantwortet. Inzwischen hab ich die Komponente geforkt und so wie David Polberger es beschrieb, den Tag Arbeit für den Fix investiert. Lange rede, kurzer Sinn: In Sachen Installation, Demos, Doku, Webseite & Code nehmen sich beide OpenSource Projekte nicht viel. Zu komplex, zu wenig Helfer. Da sitzen wir beide im selben Boot. [/OT] Gruß, Assertor :dp: |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:06 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-2025 by Thomas Breitkreuz