Provided by: manpages-ro-dev_4.21.0-2_all bug

NUME

       pthread_join - se unește cu un fir terminat

BIBLIOTECA

       Biblioteca de fire de execuție POSIX (libpthread, -lpthread)

REZUMAT

       #include <pthread.h>

       int pthread_join(pthread_t thread, void **retval);

DESCRIERE

       Funcția  pthread_join() așteaptă ca firul specificat de thread să se încheie.  În cazul în
       care firul respectiv s-a încheiat deja, atunci pthread_join() returnează  imediat.   Firul
       specificat de thread trebuie să poată fi asociat.

       Dacă  retval  nu este NULL, atunci pthread_join() copiază starea de ieșire a firului țintă
       (adică valoarea pe care firul țintă a furnizat-o lui pthread_exit(3)) în locația  indicată
       de  retval.   În  cazul  în  care  firul țintă a fost anulat, atunci PTHREAD_CANCELED este
       plasat în locația indicată de retval.

       În cazul în care mai multe fire de execuție încearcă simultan să se unească cu același fir
       de  execuție,  rezultatele  sunt  nedefinite.   În  cazul  în  care  firul  care  apelează
       pthread_join() este anulat, atunci firul țintă va continua să poată fi unit (adică  nu  va
       fi detașat).

VALOAREA RETURNATĂ

       În  caz  de  succes, pthread_join() returnează 0; în caz de eroare, returnează un număr de
       eroare.

ERORI

       EDEADLK
              A fost detectat un impas (de exemplu, două fire  de  execuție  au  încercat  să  se
              unească una cu cealaltă); sau thread specifică firul de execuție apelant.

       EINVAL thread nu este un fir de execuție care poate fi atașat.

       EINVAL Un alt fir de execuție așteaptă deja să se unească cu acest fir.

       ESRCH  Nu a putut fi găsit niciun fir de execuție cu identificatorul thread.

ATRIBUTE

       Pentru o explicație a termenilor folosiți în această secțiune, a se vedea attributes(7).

       ┌───────────────────────────────────────────────────────────┬───────────────────┬─────────┐
       │InterfațăAtributValoare │
       ├───────────────────────────────────────────────────────────┼───────────────────┼─────────┤
       │pthread_join()                                             │ Siguranța firelor │ MT-Safe │
       └───────────────────────────────────────────────────────────┴───────────────────┴─────────┘

STANDARDE

       POSIX.1-2001, POSIX.1-2008.

NOTE

       După  un  apel  reușit  la  pthread_join(), apelantului i se garantează că firul țintă s-a
       încheiat.  Apelantul poate alege apoi să efectueze orice operațiune de  curățare  necesară
       după  terminarea firului (de exemplu, eliberarea memoriei sau a altor resurse care au fost
       alocate firului țintă).

       Alăturarea cu un fir care a  fost  alăturat  anterior  are  ca  rezultat  un  comportament
       nedefinit.

       Dacă  nu  se  reușește o îmbinare cu un fir care poate fi îmbinat (adică unul care nu este
       detașat), se produce un „fir zombi”.  Evitați să faceți acest lucru, deoarece fiecare  fir
       zombi  consumă  anumite  resurse de sistem, iar atunci când se vor acumula suficiente fire
       zombi, nu va mai fi posibilă crearea de noi fire (sau procese).

       Nu există un analog «pthreads» al waitpid(-1, &status, 0),  adică  „unirea  cu  orice  fir
       terminat”.   Dacă  credeți că aveți nevoie de această funcționalitate, probabil că trebuie
       să vă regândiți proiectarea aplicației.

       Toate firele de execuție dintr-un proces sunt similare: orice fir  de  execuție  se  poate
       alătura oricărui alt fir de execuție din proces.

EXEMPLE

       A se vedea pthread_create(3).

CONSULTAȚI ȘI

       pthread_cancel(3),       pthread_create(3),       pthread_detach(3),      pthread_exit(3),
       pthread_tryjoin_np(3), pthreads(7)

TRADUCERE

       Traducerea în limba  română  a  acestui  manual  a  fost  creată  de  Remus-Gabriel  Chelu
       <remusgabriel.chelu@disroot.org>

       Această  traducere  este  documentație  gratuită;  citiți  Licența  publică  generală  GNU
       Versiunea 3  ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩  sau  o  versiune  ulterioară  cu
       privire la condiții privind drepturile de autor.  NU se asumă Nicio RESPONSABILITATE.

       Dacă  găsiți  erori  în  traducerea  acestui  manual,  vă  rugăm să trimiteți un e-mail la
       ⟨translation-team-ro@lists.sourceforge.net⟩.