Scroll to navigation

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

pthread_create(3), pthread_join(3), pthreads(7)

Ü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