pthread_exit(3) Library Functions Manual pthread_exit(3)

pthread_exit - termină firul apelant

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

#include <pthread.h>
[[noreturn]] void pthread_exit(void *retval);

Funcția pthread_exit() termină firul apelant și returnează o valoare prin retval care (dacă firul poate fi asociat) este disponibilă pentru un alt fir din același proces care apelează pthread_join(3).

Orice gestionari de curățare stabiliți de pthread_cleanup_push(3) care nu au fost încă extrași, sunt extrași (în ordinea inversă celei în care au fost introduși) și executați. În cazul în care firul de execuție are date specifice firului de execuție, atunci, după ce gestionarii de curățare au fost executați, sunt apelate funcțiile de distrugere corespunzătoare, într-o ordine nespecificată.

Atunci când un fir de execuție se termină, resursele partajatela nivel de proces (cum ar fi blocări care se exclud reciproc, variabile de condiție, semafoare și descriptori de fișiere) nu sunt eliberate, iar funcțiile înregistrate folosind atexit(3) nu sunt apelate.

După terminarea ultimului fir de execuție dintr-un proces, procesul se termină prin apelarea exit(3) cu o stare de ieșire de zero; astfel, resursele partajate de proces sunt eliberate și sunt apelate funcțiile înregistrate cu ajutorul atexit(3).

Această funcție nu returnează apelantului.

ERORI-IEȘIRE

Această funcție reușește întotdeauna.

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

Interfață Atribut Valoare
pthread_exit() Siguranța firelor MT-Safe

POSIX.1-2008.

POSIX.1-2001.

Efectuarea unei returnări din funcția de pornire a oricărui fir, altul decât firul principal, are ca rezultat un apel implicit la pthread_exit(), utilizând valoarea de returnare a funcției ca stare de ieșire a firului.

Pentru a permite altor fire de execuție să continue execuția, firul principal trebuie să se încheie prin apelarea pthread_exit() mai degrabă decât exit(3).

Valoarea indicată de retval nu trebuie să fie localizată pe stiva firului apelant, deoarece conținutul acestei stive este nedefinit după terminarea firului.

În prezent, există limitări în logica de implementare a nucleului pentru wait(2)ing pe un grup de fire oprit cu un lider de grup de fire mort. Acest lucru se poate manifesta în probleme precum un terminal blocat dacă un semnal de oprire este trimis unui proces în prim-plan al cărui lider de grup de fire a apelat deja pthread_exit().

pthread_create(3), pthread_join(3), pthreads(7)

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

Această traducere este documentație gratuită; citiți Licența publică generală GNU Versiunea 3 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.

2 mai 2024 Pagini de manual de Linux 6.8