Man page - pthread_exit(3)

Packages contains this manual

Available languages:

en fr ja ru ro de

Manual

pthread_exit

НАИМЕНОВАНИЕ
БИБЛИОТЕКА
ОБЗОР
ОПИСАНИЕ
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
ОШИБКИ
АТРИБУТЫ
СТАНДАРТЫ
ИСТОРИЯ
ПРИМЕЧАНИЯ
ОШИБКИ
СМОТРИТЕ ТАКЖЕ
ПЕРЕВОД

НАИМЕНОВАНИЕ

pthread_exit - завершает работу вызвавшей нити

БИБЛИОТЕКА

Библиотека потоков POSIX ( libpthread , -lpthread )

ОБЗОР

#include <pthread.h>

[[noreturn]] void pthread_exit(void * retval );

ОПИСАНИЕ

Функция pthread_exit () завершает работу вызвавшей нити и возвращает значение через retval , доступное (если к нити можно присоединиться) другой нити в том же процессе, вызвавшей pthread_join (3).

Если есть какие-либо невызванные очищающие обработчики, установленные pthread_cleanup_push (3), то они выполняются (в обратном регистрации порядке). Если у нити есть какие-либо свои данные, то после выполнения очищающих обработчиков вызываются соответствующие функции удаления, в неопределённом порядке.

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

После завершения последней нити процесса, процесс завершает работу как при вызове exit (3) с нулевых кодом выхода; то есть ресурсы процесса освобождаются и вызываются функции, зарезервированные с помощью atexit (3).

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ

Данная функция не возвращает выполнение вызвавшему.

ОШИБКИ

Данная функция всегда завершается успешно.

АТРИБУТЫ

Описание терминов данного раздела смотрите в attributes (7).

Image grohtml-624113-1.png

СТАНДАРТЫ

POSIX.1-2008.

ИСТОРИЯ

POSIX.1-2001.

ПРИМЕЧАНИЯ

Выполнение возврата из начальной функции любой не главной нити приводит к неявному вызову pthread_exit (), возвращаемое значение которой является кодом выхода нити.

Чтобы продолжить выполнение других нитей, главная нить должна завершаться вызовом pthread_exit (), а не exit (3).

Значение, на которое указывает retval , не должно располагаться в стеки вызывающей нити, так как содержимое этого стека не определено после завершения работы нити.

ОШИБКИ

В настоящее время в реализуемой ядром логики есть ограничения для остановленных групп нитей с помощью wait (2) с мёртвым лидером группы нитей. Из-за этого могут возникнуть такие проблемы как заблокированный терминал, если сигнал останова посылается фоновому процессу, у которого лидер группы нитей уже вызвал pthread_exit ().

СМОТРИТЕ ТАКЖЕ

pthread_create (3), pthread_join (3), pthreads (7)

ПЕРЕВОД

Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov <azamat.hackimov@gmail.com>, kogamatranslator49 <r.podarov@yandex.ru>, Darima Kogan <silverdk99@gmail.com>, Max Is <ismax799@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Иван Павлов <pavia00@gmail.com> и Kirill Rekhov <krekhov.dev@gmail.com>

Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, https://www.gnu.org/licenses/gpl-3.0.html версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.

Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу списка рассылки русских переводчиков .