Hallo,
ich habe mich vor kurzem mal wieder begonnen, mich mit C++ zu beschäftigen...ich habe eine kleine ThreadWrapper-Klasse für pthreads geschrieben. Viel kann sie noch nicht, lediglich einen Thread starten. Die Idee ist, dass man von dieser Klasse dann Subklassen bildet, eine abstrakte "run"-Methode überschreibt, und so eigentlich von den pthreads gar nichts mehr sieht. Die ThreadWrapper-Klasse ist so implementiert, dass sie das Objekt nach Beendigung der "run"-Methode selbst aufräumt. Man sieht es auch im Konsolenoutput: Der Destructor der Subklasse wird wirklich aufgerufen.
Soweit, so gut. Prinzipiell funktionniert es auch. Nur leider scheint irgendwo noch Speicher verloren zu gehen.
Ich habe mein kleines Beispielprogramm angehängt (ich entwickle auf einem Mac). Es wird in einer Schleife jeweils ein neues Objekt erzeugt. Pro Schleifendurchlauf sehe ich in der Aktivitätsanzeige des Prozesses, dass 4Kb mehr Speicher für den Prozess benötigt werden. Ich hoffe man kann das auch auf anderen PCs nachvollziehen.
Wäre sehr dankbar über jegliche Hilfe!
Grüße
ich habe mich vor kurzem mal wieder begonnen, mich mit C++ zu beschäftigen...ich habe eine kleine ThreadWrapper-Klasse für pthreads geschrieben. Viel kann sie noch nicht, lediglich einen Thread starten. Die Idee ist, dass man von dieser Klasse dann Subklassen bildet, eine abstrakte "run"-Methode überschreibt, und so eigentlich von den pthreads gar nichts mehr sieht. Die ThreadWrapper-Klasse ist so implementiert, dass sie das Objekt nach Beendigung der "run"-Methode selbst aufräumt. Man sieht es auch im Konsolenoutput: Der Destructor der Subklasse wird wirklich aufgerufen.
Soweit, so gut. Prinzipiell funktionniert es auch. Nur leider scheint irgendwo noch Speicher verloren zu gehen.
Ich habe mein kleines Beispielprogramm angehängt (ich entwickle auf einem Mac). Es wird in einer Schleife jeweils ein neues Objekt erzeugt. Pro Schleifendurchlauf sehe ich in der Aktivitätsanzeige des Prozesses, dass 4Kb mehr Speicher für den Prozess benötigt werden. Ich hoffe man kann das auch auf anderen PCs nachvollziehen.
Wäre sehr dankbar über jegliche Hilfe!
Grüße
Comment