Einzelnen Beitrag anzeigen

jensw_2000
(Gast)

n/a Beiträge
 
#7

Re: Funktion verursacht Memory-Leak >>> Warum ?

  Alt 1. Jul 2006, 01:59
@Hagen
Ich habe mit vor einigen Tagen zur Fehlersuche FastMM 4 installiert und "RemoveChars" ist in der Tat das Einzige Aufruf einer Thread-externen Funktion, bei dem LongStrings als Parameter verwendet werden.
Die Threads werden beim Dienststart erzeugt und beim Dienst-Stop beendet und freigegeben. Das Grundgerüst habe ich auf Alzaimar's genialem Threads & Jobs Beispiel aufgebaut.
Die Jobs sind einfache Objekte, welche u.A. 2 Longstrings enthalten. Die Job-Objekte befinden sich in einer TObjectlist und werden mittels TObjectlist.Extract von einem freien WorkerThread abgeholt. Der WorkerThread liest als erstes die Werte aus dem Job-Objekt in (Thread-)lokale Variablen ein und gibt das Job-Objekt sofort frei.
Dannach werden die Daten durch ein an den Thread gebundenes COM Objekt bearbeitet und letztlich in einer DB gespeichert. Der Workerthread wieder "inaktiv" extrahiert dann das nächste freie Job-Object aus der Jobliste.

Ich baue am Sonntag den Borland MM wieder ein und mache ein paar einen Testläufe.
Hoffentlich erledigt sich das Leak-Problem damit.

Erstmal vielen Dank für deine Hilfe.


Schöne Grüße,
Jens
  Mit Zitat antworten Zitat