![]() |
Delphi-Version: 2007
Deadlock in TComponent.Destroy
Ich beobachte bei einem Unit-Test aktuell ein - für mich - seltsames Verhalten. Ich habe eine TObjectlist, die den Ownership für die enthaltenen Objekte übernimmt. Entferne ich eines der Objekte aus der Liste wird auch brav der Destruktor aufgerufen. Wenn ich nun über inherited auch den Destruktor von TComponent aufrufe verarbschiedet sich die Ausführung ins Nirvana. 0% CPU Auslastung, keine Änderung im Speicherverbrauch. Der Prozess lässt sich nur nur mit Gewalt schließen. Egal ob im Debugging oder normal.
Jemand eine Idee, wo ich suchen soll? Ist ja immer leichter, wenn man zumindest eine grobe Richtung hat ;) |
AW: Deadlock in TComponent.Destroy
Mal mit F7 in den Destructor springen und schauen.
|
AW: Deadlock in TComponent.Destroy
Hilft nicht wirklich. Bleibt hinter der dem inherited stehen. Allerdings werden da noch haufenweise andere - abhängige - Objekte freigegeben. Wird mir also nichts übrig bleiben als solange Teile zu entfernen, bis es nicht mehr passiert.
|
AW: Deadlock in TComponent.Destroy
dann musst du ein paar mehr Informationen liefern. So pauschal ist das halt nicht zu beantworten.
Bernhard |
AW: Deadlock in TComponent.Destroy
Ja, das ist mir klar. Hatte die bescheidene Hoffnung, dass jemand vll mal ein ähnliches Problem gehabt hat.
Werde den Code jetzt erst mal auseinander nehmen. Im Produktivsystem tritt der Fehler nicht auf. Trotzdem danke. |
AW: Deadlock in TComponent.Destroy
Gibt es über eine Referenz (Variable/Liste) einen (vielleicht sogar schreibenden) Zugriff auf ein bereits freigebenes Objekt? Dies kann ja durch "überwachte Ausdrücke" zu Seiteneffekten führen - vielleicht auch durch Unit-Testing?
|
AW: Deadlock in TComponent.Destroy
mhh sollte eigentlich nicht. Ich glaube heute wechsel ich erst mal das Projekt. Kann den Testfall schon nicht mehr sehen :-)
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:01 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