thrd_exit
Определено в заголовке <threads.h> | ||
|---|---|---|
_Noreturn void thrd_exit( int res ); |
(с C11) (до C23) | |
[[noreturn]] void thrd_exit( int res ); | (с C23) |
Сначала, для каждого ключа хранилища, специфичного для потока, который был создан с не-нулевым деструктором и для которого связанное значение не-нулевое (см. tss_create), thrd_exit устанавливает значение, связанное с ключом, в NULL и затем вызывает деструктор с предыдущим значением ключа. Порядок вызова деструкторов не определён.
Если после этого остаются ключи с не-нулевыми деструкторами и значениями (например, если деструктор выполнил tss_set), процесс повторяется до TSS_DTOR_ITERATIONS раз.
Наконец, функция thrd_exit завершает выполнение вызывающего потока и устанавливает его код результата в res.
Если последний поток в программе завершается с помощью thrd_exit, вся программа завершается так, как если бы была вызвана exit с EXIT_SUCCESS в качестве аргумента (так что функции, зарегистрированные atexit, выполняются в контексте этого последнего потока).
Параметры
| res | - | значение результата для возврата |
Возвращаемое значение
(нет)
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.26.5.5 Функция thrd_exit (с. 280)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.26.5.5 Функция thrd_exit (с. 384)
См. также
|
(C11) | блокирует до завершения потока (функция) |
|
(C11) | отделяет поток (функция) |
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/thread/thrd_exit