pthread_exit()

Завершить поток

Прототип:

#include <pthread.h>
void pthread_exit( void *value_ptr );

Аргументы:

value_ptr
Указатель на переменную, чье значение будет возвращено потоку, ожидающему завершения текущего с помощью pthread_join().

Библиотека:

libc

Описание:

Функция pthread_exit() терминирует вызвавший поток. Если поток является присоединяемым, то значение value_ptr становится доступным потоку, вызвавшему pthread_join(), в качестве статуса завершения. Если поток не является присоединяемым (находится в состоянии "detached"), то все системные ресурсы, занятые потоком, немедленно освобождаются.

Перед завершением потока вызываются все зарегистрированные обработчики терминирования, включая TLS-деструкторы. Завершение потока не освобождает ресурсы процесса, включая мьютексы и файловые дескрипторы, а также не выполняет действия, предусмотренные atexit().

Неявный вызов pthread_exit() выполняется при возвращении из основной потоковой функции любого потока, кроме main(). При этом значение, возвращенное из потоковой функции является статусом завершения потока.


Note: Не следует вызывать pthread_exit() из зарегистрированных обработчиков терминирования и TLS-деструкторов.

Для последнего потока в процессе pthread_exit() выполняется как exit( 0 ).

Классификация:

POSIX 1003.1 Threads

Безопасность использования
Точка остановки потока
Нет
Обработчик прерываний
Нет
Обработчик сигналов
Да
В потоке
Да

Тематические ссылки:

atexit(), exit(), main(), pthread_create(), pthread_cleanup_push(), pthread_cleanup_pop(), pthread_join(), ThreadDestroy().




Предыдущий раздел: Описание API системной библиотеки