Also :
Mehrfach Lesen ist ja kein Problem.
Die Liste hab ich weil ich zuvor ein Dynamisches Array hatte und das hat wirklcih Probleme gemacht.
Das Einzige Problem das also wirklich auftritt ist, wenn ich ein element Lösche welches gerade gelesen wurde.
Wie sich nun Herausgestellt hat. Tritt der Leak Fehler aber nicht deswegen auf.
Ich habe die Liste falsch Gekürzt.
Der Fehler Tritt immer dann auf, wenn ich neue Elemente einhänge, nachdem ich das
Letze Element bereits gelöscht hatte.
Nun habe ich die Löschen Procedur Entsprechend Angepasst, und die Engine läuft stabil und ohne Leak
.
Getestet habe ich es nun mit 300000 Partikeln.
.
Für die die Mitlesen und selbst weiterarbeiten wollen
Hier der neue "Lösch" Code der den Leak behebt.
Delphi-Quellcode:
If p = Erstes Then Begin
t := erstes;
erstes := erstes^.next;
dispose(t);
p := erstes;
End
Else Begin
t := p;
v^.Next := p^.next;
If p = Letztes Then Begin// <-- Neu
Letztes := v;// <-- Neu
v^.next := Nil;// <-- Neu
End;
p := p^.next;
dispose(t);
End;