Namespaces
Variants

thrd_exit

From cppreference.net
Definiert im Header <threads.h>
_Noreturn void thrd_exit ( int res ) ;
(seit C11)
(bis C23)
[ [ noreturn ] ] void thrd_exit ( int res ) ;
(seit C23)

Zunächst setzt thrd_exit für jeden threadspezifischen Speicherschlüssel, der mit einem nicht-NULL-Destruktor erstellt wurde und dessen assoziierter Wert nicht NULL ist (siehe tss_create ), den mit dem Schlüssel assoziierten Wert auf NULL und ruft dann den Destruktor mit dem vorherigen Wert des Schlüssels auf. Die Reihenfolge, in der die Destruktoren aufgerufen werden, ist nicht spezifiziert.

Wenn danach noch Schlüssel mit sowohl nicht-null Destruktoren als auch Werten verbleiben (z.B. wenn ein Destruktor tss_set ausgeführt hat), wird der Prozess bis zu TSS_DTOR_ITERATIONS Mal wiederholt.

Schließlich beendet die thrd_exit -Funktion die Ausführung des aufrufenden Threads und setzt seinen Ergebniscode auf res .

Wenn der letzte Thread im Programm mit thrd_exit beendet wird, wird das gesamte Programm beendet, als ob exit mit EXIT_SUCCESS als Argument aufgerufen worden wäre (sodass die durch atexit registrierten Funktionen im Kontext dieses letzten Threads ausgeführt werden).

Inhaltsverzeichnis

Parameter

res - der zurückzugebende Ergebniswert

Rückgabewert

(keine)

Referenzen

  • C17-Standard (ISO/IEC 9899:2018):
  • 7.26.5.5 Die thrd_exit-Funktion (S: 280)
  • C11-Standard (ISO/IEC 9899:2011):
  • 7.26.5.5 Die thrd_exit-Funktion (S: 384)

Siehe auch

blockiert bis ein Thread terminiert
(Funktion)
trennt einen Thread
(Funktion)