.\" -*- coding: UTF-8 -*- '\" t .\" Copyright (c) 2008 Linux Foundation, written by Michael Kerrisk .\" .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH pthread_exit 3 "31 октября 2023 г." "Linux man\-pages 6.06" .SH ИМЯ pthread_exit \- завершает работу вызвавшей нити .SH LIBRARY POSIX threads library (\fIlibpthread\fP, \fI\-lpthread\fP) .SH СИНТАКСИС .nf \fB#include \fP .P \fB[[noreturn]] void pthread_exit(void *\fP\fIretval\fP\fB);\fP .fi .SH ОПИСАНИЕ Функция \fBpthread_exit\fP() завершает работу вызвавшей нити и возвращает значение через \fIretval\fP, доступное (если к нити можно присоединиться) другой нити в том же процессе, вызвавшей \fBpthread_join\fP(3). .P Если есть какие\-либо невызванные очищающие обработчики, установленные \fBpthread_cleanup_push\fP(3), то они выполняются (в обратном регистрации порядке). Если у нити есть какие\-либо свои данные, то после выполнения очищающих обработчиков вызываются соответствующие функции удаления, в неопределённом порядке. .P Когда нить завершает выполнение связанные с процессом ресурсы (например, мьютексы, условные переменные, семафоры и файловые дескрипторы) не освобождаются и функции, зарегистрированные через \fBatexit\fP(3), не вызываются. .P После завершения последней нити процесса, процесс завершает работу как при вызове \fBexit\fP(3) с нулевых кодом выхода; то есть ресурсы процесса освобождаются и вызываются функции, зарезервированные с помощью \fBatexit\fP(3). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" Данная функция не возвращает выполнение вызвавшему. .SH ОШИБКИ Данная функция всегда завершается успешно. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBpthread_exit\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ POSIX.1\-2008. .SH ИСТОРИЯ POSIX.1\-2001. .SH ЗАМЕЧАНИЯ Выполнение возврата из начальной функции любой не главной нити приводит к неявному вызову \fBpthread_exit\fP(), возвращаемое значение которой является кодом выхода нити. .P Чтобы продолжить выполнение других нитей, главная нить должна завершаться вызовом \fBpthread_exit\fP(), а не \fBexit\fP(3). .P Значение, на которое указывает \fIretval\fP, не должно располагаться в стеки вызывающей нити, так как содержимое этого стека не определено после завершения работы нити. .SH ДЕФЕКТЫ .\" Linux 2.6.27 .\" FIXME . review a later kernel to see if this gets fixed .\" http://thread.gmane.org/gmane.linux.kernel/611611 .\" http://marc.info/?l=linux-kernel&m=122525468300823&w=2 В настоящее время в реализуемой ядром логики есть ограничения для остановленных групп нитей с помощью \fBwait\fP(2) с мёртвым лидером группы нитей. Из\-за этого могут возникнуть такие проблемы как заблокированный терминал, если сигнал останова посылается фоновому процессу, у которого лидер группы нитей уже вызвал \fBpthread_exit\fP(). .SH "СМ. ТАКЖЕ" \fBpthread_create\fP(3), \fBpthread_join\fP(3), \fBpthreads\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Alexey, Azamat Hackimov , kogamatranslator49 , Kogan, Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .