pthread_join(3) Library Functions Manual pthread_join(3) NUME pthread_join - se unete cu un fir terminat BIBLIOTECA Biblioteca de fire de execuie POSIX (libpthread, -lpthread) REZUMAT #include int pthread_join(pthread_t thread, void **retval); DESCRIERE Funcia pthread_join() ateapta ca firul specificat de thread sa se incheie. In cazul in care firul respectiv s-a incheiat deja, atunci pthread_join() returneaza imediat. Firul specificat de thread trebuie sa poata fi asociat. Daca retval nu este NULL, atunci pthread_join() copiaza starea de ieire a firului inta (adica valoarea pe care firul inta a furnizat-o lui pthread_exit(3)) in locaia indicata de retval. In cazul in care firul inta a fost anulat, atunci PTHREAD_CANCELED este plasat in locaia indicata de retval. In cazul in care mai multe fire de execuie incearca simultan sa se uneasca cu acelai fir de execuie, rezultatele sunt nedefinite. In cazul in care firul care apeleaza pthread_join() este anulat, atunci firul inta va continua sa poata fi unit (adica nu va fi detaat). VALOAREA RETURNATA In caz de succes, pthread_join() returneaza 0; in caz de eroare, returneaza un numar de eroare. ERORI-IEIRE EDEADLK A fost detectat un impas (de exemplu, doua fire de execuie au incercat sa se uneasca una cu cealalta); sau thread specifica firul de execuie apelant. EINVAL thread nu este un fir de execuie care poate fi ataat. EINVAL Un alt fir de execuie ateapta deja sa se uneasca cu acest fir. ESRCH Nu a putut fi gasit niciun fir de execuie cu identificatorul thread. ATRIBUTE Pentru o explicaie a termenilor folosii in aceasta seciune, a se vedea attributes(7). +--------------------------------------+---------------------+---------+ |Interfaa | Atribut | Valoare | +--------------------------------------+---------------------+---------+ |pthread_join() | Sigurana firelor | MT-Safe | +--------------------------------------+---------------------+---------+ STANDARDE POSIX.1-2008. ISTORIC POSIX.1-2001. NOTE Dupa un apel reuit la pthread_join(), apelantului i se garanteaza ca firul inta s-a incheiat. Apelantul poate alege apoi sa efectueze orice operaiune de curaare necesara dupa terminarea firului (de exemplu, eliberarea memoriei sau a altor resurse care au fost alocate firului inta). Alaturarea cu un fir care a fost alaturat anterior are ca rezultat un comportament nedefinit. Daca nu se reuete o imbinare cu un fir care poate fi imbinat (adica unul care nu este detaat), se produce un ,,fir zombi". Evitai sa facei acest lucru, deoarece fiecare fir zombi consuma anumite resurse de sistem, iar atunci cand se vor acumula suficiente fire zombi, nu va mai fi posibila crearea de noi fire (sau procese). Nu exista un analog <> al waitpid(-1, &status, 0), adica ,,unirea cu orice fir terminat". Daca credei ca avei nevoie de aceasta funcionalitate, probabil ca trebuie sa va regandii proiectarea aplicaiei. Toate firele de execuie dintr-un proces sunt similare: orice fir de execuie se poate alatura oricarui alt fir de execuie din proces. EXEMPLE A se vedea pthread_create(3). CONSULTAI I pthread_cancel(3), pthread_create(3), pthread_detach(3), pthread_exit(3), pthread_tryjoin_np(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_join(3)