Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
17. Sep 2013
Danke schön. Werde ich mal testen und dann das Ergebnis hier bekannt geben.
Gruß
Alex
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
16. Sep 2013
Hallo zusammen,
Ich selber nutze TMonitor definitiv nicht. Wenn dann ist das durch irgendwelche Änderungen im Hintergrund vom Delphi Standard reingekommen. Weiß denn jemand, ob TForm irgendwo neuerdings TMonitor benutzt?
@jaenicke:
Ich bin mal gespannt auf deine "Anleitung" mit dem Assemblerfenster ;-)
Gruß
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
11. Sep 2013
Alle Threads ausklammern wäre sicherlich recht aufwendig wenn überhaupt machbar. Muss ich mal im Hinterkopf behalten.
@jaenicke: Ich kann dir nur teilweise folgen. FastMM4 ist klar mit FullDebugMode, dann den Breakpoint auf die repeat until Schleife ist mir auch noch klar aber was meinst du mit "per Assemblerfenster manuell aus der Schleife und dann Speicherlecks prüfen"? Was du mit Assembler...
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
10. Sep 2013
Klar, ich will es eigentlich auch richtig gelöst haben und nicht irgendwie gefuscht.
Das Problem ist ja, dass ich nicht genau weiß, wer alles TMonitor verwendet (scheinen ja in der neuen Delphi Version jede Menge Controls/Objecte zu sein) und wie ich vielleicht anhand der EventAdresse auf das Object schlussfolgern könnte.
Gruß
Alex
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
10. Sep 2013
Ich habe jetzt mal D2009 mit XE4 verglichen.
Das DoneMonitorSupport gibt es nämlich unter D2009 auch schon nur werden standardmäßig keine Events eingetragen (TMonitor.Enter -> TMonitor.GetEvent -> MonitorSupport.NewSyncObject).
Anbei mal ein Screenshot wo man den Unterschied im TThread deutlich sieht.
Das hat sich nämlich geändert zwischen den beiden Delphi Versionen.
(System.)Classes.pas...
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
10. Sep 2013
Hallo Uwe,
was ich auch nicht verstehe ist, dass es bei einem 64 Build nie schief geht bei mir.
Wir machen eigentlich immer Umsch+F9 zum Projekt erzeugen und löschen per Batch Datei vorher alle alten DCUs.
Komisch ist irgendwie auch, dass immer in dem Haltepunkt "CleanEventList(SyncEventCache);" das SynchEventCache immer genau 3 Einträge drinne hat (nie mehr oder weniger) und manchmal ist...
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
10. Sep 2013
Hallo Uwe,
ich habe mich selber schonmal in die Funktion "TMonitor.Enter" debuggt und geguckt, wer das alles aufruft.
Ich bin dann schließlich auf TThread gestoßen, der beim Create ein Objekt "ThreadLock" erstellt, welches dann mit TMonitor.Enter und TMonitor.Exit genutzt wird. Und im Destructor wird dieses Objekt dann wieder freigegeben.
Das komische ist ja, dass es nicht immer auftritt...
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
26. Jun 2013
Hab gefunden in welchen finalization Abschnitt er hängt.
System.SysUtils -> DoneMonitorSupport -> CleanEventList -> repeat until AtomicCmpExchange(EventCache.Lock, 1, 0) = 0;
Dort bleibt er ewig hängen.
Uwe Raabe hatte dazu hier schonmal was geschrieben:
http://stackoverflow.com/questions/14217735/application-hangs-in-sysutils-donemonitorsupport-on-exit
Ich vermute TMS benutzt das Objekt...
Forum: Sonstige Fragen zu Delphi
Delphi
by Alex_ITA01,
25. Jun 2013
Hallo zusammen,
ich habe seit heute XE4 Pro und habe meine Anwendung von Delphi 2009 übernommen. Ein paar Anpassungen musste ich machen aber es lässt sich alles compilieren und ich habe auch keine Warnungen oder Fehler.
Unter Delphi 2009 konnte ich meine Anwendung ganz normal beenden (Threads freigeben, Objekte freigeben, Formulare freigeben usw.).
Unter XE4 habe ich das Problem, dass die...