Provided by: manpages-ru-dev_4.26.0-1_all 
      
    
НАИМЕНОВАНИЕ
       pthread_tryjoin_np, pthread_timedjoin_np - пытается присоединиться к завершённой нити
БИБЛИОТЕКА
       Библиотека потоков POSIX (libpthread, -lpthread)
ОБЗОР
       #define _GNU_SOURCE             /* Смотрите feature_test_macros(7) */
       #include <pthread.h>
       int pthread_tryjoin_np(pthread_t thread, void **retval);
       int pthread_timedjoin_np(pthread_t thread, void **retval,
                                const struct timespec *abstime);
ОПИСАНИЕ
       Эти  функции  работают  также  как pthread_join(3) за исключением различий, описанных в данной справочной
       странице.
       Функция pthread_tryjoin_np() выполняет неблокирующую присоединение к нити thread, возвращая в *retval код
       выхода нити. Если thread ещё не завершилась, то вместо блокировки, как это делает pthread_join(3),  вызов
       возвращает ошибку.
       The  pthread_timedjoin_np()   function  performs  a join-with-timeout.  If thread has not yet terminated,
       then the call blocks until a maximum time, specified in  abstime,  measured  against  the  CLOCK_REALTIME
       clock.  If the timeout expires before thread terminates, the call returns an error.  The abstime argument
       is a timespec(3)  structure, specifying an absolute time measured since the Epoch (see time(2)).
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
       При успешном выполнении эти функции возвращают 0; при ошибке возвращается номер ошибки.
ОШИБКИ
       Эти  функции  могут  завершиться  с  теми  же  ошибками  что  и  pthread_join(3).  Дополнительно, функция
       pthread_tryjoin_np() может завершиться со следующей ошибкой:
       EBUSY  Нить thread не завершилась на момент вызова.
       Дополнительно, функция pthread_timedjoin_np() может завершиться со следующими ошибками:
       EINVAL Некорректное значение abstime (tv_sec меньше 0 или tv_nsec больше 1e9).
       ETIMEDOUT
              Истёк период ожидания раньше завершения thread.
       Функция pthread_timedjoin_np() никогда не возвращает ошибку EINTR.
АТРИБУТЫ
       Описание терминов данного раздела смотрите в attributes(7).
       ┌─────────────────────────────────────────────────────────────────────┬──────────────────────┬──────────┐
       │ Интерфейс                                                           │ Атрибут              │ Значение │
       ├─────────────────────────────────────────────────────────────────────┼──────────────────────┼──────────┤
       │ pthread_tryjoin_np(), pthread_timedjoin_np()                        │ Безвредность в нитях │ MT-Safe  │
       └─────────────────────────────────────────────────────────────────────┴──────────────────────┴──────────┘
СТАНДАРТЫ
       GNU, о чём свидетельствует наличие суффикса «_np» (nonportable) в именах.
ИСТОРИЯ
       glibc 2.3.3.
ОШИБКИ
       The pthread_timedjoin_np()  function measures time by internally calculating a  relative  sleep  interval
       that   is  then  measured  against  the  CLOCK_MONOTONIC  clock  instead  of  the  CLOCK_REALTIME  clock.
       Consequently, the timeout is unaffected by discontinuous changes to the CLOCK_REALTIME clock.
ПРИМЕРЫ
       Следующий код ждёт присоединения к нити не более 5 секунд:
           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 */
           }
СМОТРИТЕ ТАКЖЕ
       clock_gettime(2), pthread_exit(3), pthread_join(3), timespec(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  или
       более поздней) в отношении авторского права, но БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
       Если  вы  обнаружите какие-либо ошибки в переводе этой страницы руководства, пожалуйста, сообщите об этом
       разработчику(ам)  по  его(их)  адресу(ам)  электронной  почты  или  по   адресу   списка рассылки русских
       переводчиков.
Справочные страницы Linux 6.9.1                   2 мая 2024 г.                            pthread_tryjoin_np(3)