pthread_tryjoin_np(3) Library Functions Manual pthread_tryjoin_np(3) NUME pthread_tryjoin_np, pthread_timedjoin_np - incearca sa uneasca cu un fir ce s-a terminat de executat BIBLIOTECA Biblioteca de fire de execuie POSIX (libpthread, -lpthread) REZUMAT #define _GNU_SOURCE /* Consultai feature_test_macros(7) */ #include int pthread_tryjoin_np(pthread_t thread, void **retval); int pthread_timedjoin_np(pthread_t thread, void **retval, const struct timespec *abstime); DESCRIERE Aceste funcii opereaza in acelai mod ca i pthread_join(3), cu excepia diferenelor descrise in aceasta pagina. Funcia pthread_tryjoin_np() efectueaza o imbinare fara blocare cu firul thread, returnand starea de ieire a firului in *retval. In cazul in care thread nu s-a incheiat inca, atunci, in loc sa se blocheze, aa cum face pthread_join(3), apelul returneaza o eroare. Funcia pthread_timedjoin_np() efectueaza o imbinare cu temporizare (join-with-timeout). Daca thread nu s-a incheiat inca, atunci apelul se blocheaza pana la un timp maxim, specificat in abstime, masurat in funcie de ceasul CLOCK_REALTIME. In cazul in care timpul de ateptare expira inainte ca thread sa se incheie, apelul returneaza o eroare. Argumentul abstime este o structura timespec(3), specificand un timp absolut masurat de la Epoca (a se vedea time(2)). VALOAREA RETURNATA In caz de succes, aceste funcii returneaza 0; in caz de eroare, ele returneaza un numar de eroare. ERORI-IEIRE Aceste funcii pot eua cu aceleai erori ca i pthread_join(3). In plus, pthread_tryjoin_np() poate eua cu urmatoarea eroare: EBUSY thread nu se incheiase inca in momentul apelului. pthread_timedjoin_np() poate, in plus, sa eueze cu urmatoarele erori: EINVAL valoarea abstime nu este valabila (tv_sec este mai mica decat 0 sau tv_nsec este mai mare decat 1e9). ETIMEDOUT Apelul a expirat inainte ca thread sa se incheie. pthread_timedjoin_np() nu returneaza niciodata eroarea EINTR. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |pthread_tryjoin_np(), | Sigurana firelor | MT-Safe | |pthread_timedjoin_np() | | | +--------------------------------------+---------------------+---------+ STANDARDE GNU; de aici i sufixul ,,_np" (neportabil) din denumiri. ISTORIC glibc 2.3.3. ERORI Funcia pthread_timedjoin_np() masoara timpul prin calcularea interna a unui interval de somn relativ care este apoi masurat in raport cu ceasul CLOCK_MONOTONIC in loc de ceasul CLOCK_REALTIME. In consecina, timpul de ateptare nu este afectat de modificarile discontinue ale ceasului CLOCK_REALTIME. EXEMPLE Urmatorul cod ateapta sa se uneasca timp de pana la 5 secunde: struct timespec ts; int s; ... if (clock_gettime(CLOCK_REALTIME, &ts) == -1) { /* Gestionare eroare */ } ts.tv_sec += 5; s = pthread_timedjoin_np(thread, NULL, &ts); if (s != 0) { /* Gestionare eroare */ } CONSULTAI I clock_gettime(2), pthread_exit(3), pthread_join(3), timespec(3), pthreads(7) TRADUCERE Traducerea in limba romana a acestui manual a fost facuta de Remus- Gabriel Chelu Aceasta traducere este documentaie gratuita; citii Licena publica generala GNU Versiunea 3 sau o versiune ulterioara cu privire la condiii privind drepturile de autor. NU se asuma NICIO RESPONSABILITATE. Daca gasii erori in traducerea acestui manual, va rugam sa trimitei un e-mail la . Pagini de manual de Linux 6.06 31 octombrie 2023 pthread_tryjoin_np(3)