Bei der Prozedur handelte es sich um eine "Komprimierungsprozedur", d.h. eine Prozedur die mit
ZLib arbeitete (oder besser, einem Nachfolger). Da die Prozedur erst wieder zurückkehrte, nachdem der Stream komprimiert war, wäre eine Terminated-Abfrage sinnlos gewesen. Wenn ich den Thread einfach mit TerminateThread gekillt habe, konnte diese Prozedur aber auch keinen Müll mehr beseitigen, es führte zu abstürtzen. Nun habe ich die
ZLib CompresionStream mit einem Boolischen-Wert erweitert, der, wenn er auf true gesetzt wird, die Prozedur abbricht. Dies war möglich, da die Komprimierungsfunktion in einer schnuckeligen Schleife ablief. Also musste ich nach jedem Schleifendurchlauf nur die Variable überprüfen, die dazugefügt habe. Von außerhalb musste ich also nur noch die Variable auf true bzw. false setzten, um den Vorgang abzubrechen, ohne Speicherleaks zu riskieren.
Alles klar?