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 (https://www.gnu.org/licenses/gpl-3.0.html) 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: debian-l10n-german@lists.debian.org.