.\" -*- 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_tryjoin_np 3 "2 мая 2024 г." "Справочные страницы Linux 6.9.1" .SH ИМЯ pthread_tryjoin_np, pthread_timedjoin_np \- пытается присоединиться к завершённой нити .SH БИБЛИОТЕКА POSIX threads library (\fIlibpthread\fP, \fI\-lpthread\fP) .SH СИНТАКСИС .nf \fB#define _GNU_SOURCE\fP /* Смотрите feature_test_macros(7) */ \fB#include \fP .P \fBint pthread_tryjoin_np(pthread_t \fP\fIthread\fP\fB, void **\fP\fIretval\fP\fB);\fP \fBint pthread_timedjoin_np(pthread_t \fP\fIthread\fP\fB, void **\fP\fIretval\fP\fB,\fP \fB const struct timespec *\fP\fIabstime\fP\fB);\fP .fi .SH ОПИСАНИЕ Эти функции работают также как \fBpthread_join\fP(3) за исключением различий, описанных в данной справочной странице. .P Функция \fBpthread_tryjoin_np\fP() выполняет неблокирующую присоединение к нити \fIthread\fP, возвращая в \fI*retval\fP код выхода нити. Если \fIthread\fP ещё не завершилась, то вместо блокировки, как это делает \fBpthread_join\fP(3), вызов возвращает ошибку. .P The \fBpthread_timedjoin_np\fP() function performs a join\-with\-timeout. If \fIthread\fP has not yet terminated, then the call blocks until a maximum time, specified in \fIabstime\fP, measured against the \fBCLOCK_REALTIME\fP clock. If the timeout expires before \fIthread\fP terminates, the call returns an error. The \fIabstime\fP argument is a \fBtimespec\fP(3) structure, specifying an absolute time measured since the Epoch (see \fBtime\fP(2)). .SH "ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ" При успешном выполнении эти функции возвращают 0; при ошибке возвращается номер ошибки. .SH ОШИБКИ Эти функции могут завершиться с теми же ошибками что и \fBpthread_join\fP(3). Дополнительно, функция \fBpthread_tryjoin_np\fP() может завершиться со следующей ошибкой: .TP \fBEBUSY\fP Нить \fIthread\fP не завершилась на момент вызова. .P Дополнительно, функция \fBpthread_timedjoin_np\fP() может завершиться со следующими ошибками: .TP \fBEINVAL\fP Некорректное значение \fIabstime\fP (\fItv_sec\fP меньше 0 или \fItv_nsec\fP больше 1e9). .TP \fBETIMEDOUT\fP Истёк период ожидания раньше завершения \fIthread\fP. .P Функция \fBpthread_timedjoin_np\fP() никогда не возвращает ошибку \fBEINTR\fP. .SH АТРИБУТЫ Описание терминов данного раздела смотрите в \fBattributes\fP(7). .TS allbox; lbx lb lb l l l. Интерфейс Атрибут Значение T{ .na .nh \fBpthread_tryjoin_np\fP(), \fBpthread_timedjoin_np\fP() T} Безвредность в нитях MT\-Safe .TE .SH СТАНДАРТЫ GNU, о чём свидетельствует наличие суффикса «_np» (nonportable) в именах. .SH ИСТОРИЯ glibc 2.3.3. .SH ОШИБКИ The \fBpthread_timedjoin_np\fP() function measures time by internally calculating a relative sleep interval that is then measured against the \fBCLOCK_MONOTONIC\fP clock instead of the \fBCLOCK_REALTIME\fP clock. Consequently, the timeout is unaffected by discontinuous changes to the \fBCLOCK_REALTIME\fP clock. .SH ПРИМЕРЫ Следующий код ждёт присоединения к нити не более 5 секунд: .P .in +4n .EX struct timespec ts; int s; \& \&... \& if (clock_gettime(CLOCK_REALTIME, &ts) == \-1) { /* Handle error */ } \& ts.tv_sec += 5; \& s = pthread_timedjoin_np(thread, NULL, &ts); if (s != 0) { /* Handle error */ } .EE .in .SH "СМОТРИТЕ ТАКЖЕ" \fBclock_gettime\fP(2), \fBpthread_exit\fP(3), \fBpthread_join\fP(3), \fBtimespec\fP(3), \fBpthreads\fP(7) .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства разработал(и) Alexey, Azamat Hackimov , kogamatranslator49 , Darima Kogan , Max Is , Yuri Kozlov и Иван Павлов . .PP Этот перевод является свободной программной документацией; он распространяется на условиях общедоступной лицензии GNU (GNU General Public License - GPL, .UR https://www.gnu.org/licenses/gpl-3.0.html .UE версии 3 или более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ. .PP Если вы обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом разработчику(ам) по его(их) адресу(ам) электронной почты или по адресу .MT списка рассылки русских переводчиков .ME .