- unstable 4.26.0-1
pthread_exit(3) | Library Functions Manual | pthread_exit(3) |
BEZEICHNUNG¶
pthread_exit - Aufrufenden Thread beenden
BIBLIOTHEK¶
POSIX-Threads-Bibliothek (libpthread, -lpthread)
ÜBERSICHT¶
#include <pthread.h>
[[noreturn]] void pthread_exit(void *rückwert);
BESCHREIBUNG¶
Die Funktion pthread_exit() beendet den aufrufenden Thread und liefert einen Wert mittels rückwert zurück, der (falls der Thread zusammenführbar ist) einem anderen Thread in dem gleichen Prozess, der pthread_join(3) aufruft, zur Verfügung steht.
Alle mit pthread_cleanup_push(3) etablierten Bereinigungs-Handhaber, die noch nicht nach oben geschoben wurden, werden nach oben geschoben (in der umgekehrten Reihenfolge, in der sie nach unten geschoben wurden) und werden ausgeführt. Falls der Thread über Thread-spezifische Daten verfügt, werden nach Ausführung der Bereinigungs-Handhaber die entsprechenden Destruktor-Funktionen in einer nicht festgelegten Reihenfolge aufgerufen.
Wenn sich ein Thread beendet, werden vom Prozess gemeinsam verwandte Ressourcen (z.B. Mutexe, Bedingungsvariablen, Sempahoren und Dateideskriptoren) nicht freigegeben und mittels atexit(3) registrierte Funktionen werden nicht aufgerufen.
Nachdem sich der letzte Thread in einem Prozess beendet, beendet sich der Prozess durch Aufruf von exit(3) mit einem Exit-Status von Null, daher werden von Prozessen gemeinsam benutzte Ressourcen freigegeben und mit atexit(3) registrierte Funktionen aufgerufen.
RÜCKGABEWERT¶
Diese Funktion kehrt nicht zum Aufrufenden zurück.
FEHLER¶
Diese Funktion ist immer erfolgreich.
ATTRIBUTE¶
Siehe attributes(7) für eine Erläuterung der in diesem Abschnitt verwandten Ausdrücke.
Schnittstelle | Attribut | Wert |
pthread_exit() | Multithread-Fähigkeit | MT-Sicher |
STANDARDS¶
POSIX.1-2008.
GESCHICHTE¶
POSIX.1-2001.
ANMERKUNGEN¶
Wird eine Rückkehr aus einer Startfunktion eines Threads, der nicht der Haupt-Thread ist, durchgeführt, dann führt dies zu einem impliziten Aufruf von pthread_exit(), wobei der Rückgabewert der Funktion als Exit-Status des Threads verwandt wird.
Um anderen Threads die Fortführung der Ausführung zu erlauben, sollte sich der Haupt-Thread durch Aufruf von pthread_exit() anstelle von exit(3) beenden.
Der Wert, auf den rückwert zeigt, sollte sich nicht auf dem Stapel des aufrufenden Threads befinden, da der Inhalt dieses Stapels nach der Beendigung des Threads undefiniert ist.
FEHLER¶
Derzeit gibt es Beschränkungen in der Kernel-Implementierungslogik für ein wait(2) bei einer angehaltenen Thread-Gruppe mit einem toten Thread-Gruppenleiter. Dies kann sich in Problemen wie einem gesperrten Terminal äußern, falls ein Stopp-Signal an einen Vordergrundprozess gesandt wird, dessen Thread-Gruppenleiter bereits pthread_exit() aufgerufen hat.
SIEHE AUCH¶
ÜBERSETZUNG¶
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
2. Mai 2024 | Linux man-pages 6.9.1 |