thrd_exit
| Definiert im Header <threads.h> |
||
_Noreturn void thrd_exit( int res ); |
(seit C11) (bis C23) |
|
| [[noreturn]] void thrd_exit( int res ); |
(seit C23) | |
Zuerst wird für jeden Thread-spezifischen Speicher-Schlüssel, der mit einem nicht-null-Destruktor erstellt wurde und für den der zugeordnete Wert nicht-null ist (siehe tss_create), der Wert, der dem Schlüssel zugeordnet ist, auf NULL gesetzt und dann der Destruktor mit dem vorherigen Wert des Schlüssels aufgerufen. 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 aufgerufen hat), wird der Prozess bis zu TSS_DTOR_ITERATIONS Mal wiederholt.
Schließlich beendet die Funktion thrd_exit die Ausführung des aufrufenden Threads und setzt seinen Rückgabecode auf res.
Wenn der letzte Thread im Programm mit thrd_exit beendet wird, terminiert das gesamte Programm, als ob exit mit EXIT_SUCCESS als Argument aufgerufen worden wäre (die Funktionen, die von atexit registriert wurden, werden im Kontext dieses letzten Threads ausgeführt).
Inhalt |
[bearbeiten] Parameter
| res | - | der Rückgabewert |
[bearbeiten] Rückgabewert
(keine)
[bearbeiten] Referenzen
- C17-Standard (ISO/IEC 9899:2018)
- 7.26.5.5 The thrd_exit function (S. 280)
- C11-Standard (ISO/IEC 9899:2011)
- 7.26.5.5 The thrd_exit function (S. 384)
[bearbeiten] Siehe auch
| (C11) |
blockiert, bis ein Thread beendet wird (Funktion) |
| (C11) |
trennt einen Thread ab (Funktion) |