Namespaces
Variants

thrd_exit

From cppreference.net
Определено в заголовке <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)

Смотрите также

блокирует выполнение до завершения потока
(функция)
отсоединяет поток
(функция)