Kill Thread
-
Hallo alle Zusammen,
bin grade dabei etwas mehr mit Threads zu arbeiten, aber stoße immer wieder auf Probleme.
Ich habe es soweit bekommen, dass ich einen Thread starten kann, seine TID bestimmen kann und ihn auch beenden kann, leider wird mehr als der Thread beendet.
int kill_thread () { pthread_kill ( tid, 9 ) return 1; }
Egal ob ich nun cancle oder kill benutze, immer wird alles beendet. Kennt einer von euch vielleicht das Probelm?
mfg
akoww
-
pthread ist POSIX und somit hier falsches Forum.
-
Dieser Thread wurde von Moderator/in SeppJ aus dem Forum C (C89 und C99) in das Forum Linux/Unix verschoben.
Im Zweifelsfall bitte auch folgende Hinweise beachten:
C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?Dieses Posting wurde automatisch erzeugt.
-
man page schrieb:
NOTES
Signal dispositions are process-wide: if a signal handler is installed, the handler will be invoked in the thread thread, but if the disposition of the signal is "stop", "continue", or "terminate", this action will affect the whole process.Benutzt du noch andere Signale irgendwo im Prozess inkl Threads?
-
Also ich mach alles mit GTK. 2 Buttons , nur zum testen.
Einer erstellt 'nen Thread mit 'ner whilschleife damit er einfach am leben bleibt.
Und der zweite Button soll den thread killen , eben mit der Funktion.
Und beim Beenden des Threads killt er komischerweise alles.
-
Und du bist ganz sicher, dass pthread_cancel auch das gesamte Programm beendet? Kommt in der Konsole irgendeine Ausgabe? Es läuft schon ein aktuelles(?) Linux?
-
Ja es wird alles gekillt, mein GTK fester geht leider auch aus.
Die Konsole gibt halt nichts von dem aus, was nach dem befhelt noch kommen sollte. Fehlermeldungen kommen aber nicht.
Also es wird die richtige TID übergeben, aber leider wird wohl die falsche geschlossen.
-
Ich habe den Fehler gefunden !
Die TID wurde falsch ermittelt und komischerweise wurde alles gekillt.