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)
|
отсоединяет поток
(функция) |