Pthreads richtig aufräumen



  • Hallo,
    ich habe für meine Thread-, Mutex-, Cond-, etc. Objekte je einen Container, der Pointer auf die Objekte hält, d.h. die Objekte werden mit new erstellt, dann mit pthread_init(...) initialisiert, dann starte ich die Threads.
    Da ich mir jetzt beim Aufräumen unsicher bin und sich das ja schlecht überprüfen lässt, ob wirklich alles gut gegangen ist, wollte ich mal fragen, was uns in welcher Reihenfolge ich jetzt alles aufrufen muss, so dass wirklich alles weg ist, inkl. der Container. Vor allem um die Reihenfolge gehts mir, also wie ich meine pthread_destroy(...), delete usw. am besten organisiere.
    Danke
    MfG



  • Hat nicht jemand vielleicht ein altes Codeschnipsel irgendwo rumliegen, das die Deinitialisierung etc. zeigt?



  • Naja die Reihenfolge ist egal, solange du nichts löscht, was du brauchst um späteres zu löschen. Also ich mache das normalerweise immer in genau der umgekehrten Reigenfolge wie die initialisierung.
    Also zuerst Thread stoppen, pthread_destroy(), danach delete deines Containers

    Und zum testen, schau dir mal valgrind an. Das sagt dir, wenn du Speicher nicht freigibst.


Anmelden zum Antworten