Hilfe bei SIGTERM und Threads

Perdan

Mitglied
Hallo zusammen,

Ich arbeite mit Ubuntu 8.10 und C / C++.

Ich habe folgendes Problem. Mein Programm startet mit Pthread 4 Threads.
Drei Threads laufen in einer Endlosschleife, der vierte zählt einen Timer hoch. Hat der Timer einen bestimmten Wert erreicht, soll zufällig einer der drei anderen Threads beendet werden. Beim Beenden muss ich aber noch im zu beendenden Thread "aufräumen".

Für Prozesse habe ich SIGTERM gefunden um dieses Problem zu lösen. Die Frage ist nun geht sowas auch bei Threads.
Falls es geht bin ich für einen Tip wie ich das am besten mache dankbar.

MfG

Perdan
 
Hi.

Du könntest einen Cleanup Handler registrieren (siehe pthread_cleanup_push).

Wenn du dann pthread_cancel aufrufst, werden die Funktionen in umgekehrter Reihenfolge ausgeführt.

Gruß
 
Zurück