Provided by: manpages-ro-dev_4.27.0-1_all bug

NUME

       pthread_atfork - înregistrează gestionarii de bifurcări

BIBLIOTECA

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

SINOPSIS

       #include <pthread.h>

       int pthread_atfork(void (*prepare)(void), void (*parent)(void),
                          void (*child)(void));

DESCRIERE

       Funcția pthread_atfork() înregistrează gestionarii de bifurcare care urmează să fie executați atunci când
       fork(2)  este apelat de orice fir dintr-un proces. Gestionatorii sunt executați în contextul firului care
       apelează fork(2).

       Se pot înregistra trei tipuri de gestionari:

       •  prepare specifică un gestionar care este executat în procesul părinte înainte de începerea  procesării
          fork(2).

       •  parent  specifică  un  gestionar  care  este  executat  în procesul părinte după terminarea procesării
          fork(2).

       •  child specifică un gestionar care este executat în procesul-copil după terminarea procesării fork(2).

       Oricare dintre cele trei argumente poate fi NULL în cazul în care nu este necesar nici  un  gestionar  în
       faza corespunzătoare a procesării fork(2).

VALOAREA RETURNATĂ

       În  caz  de  succes,  pthread_atfork()  returnează zero. În caz de eroare, returnează un număr de eroare.
       pthread_atfork() poate fi apelat de mai multe ori de către  un  proces  pentru  a  înregistra  gestionari
       suplimentari.  Operatorii  pentru fiecare fază sunt apelați într-o ordine specificată: operatorii prepare
       sunt apelați în ordinea inversă a înregistrării; operatorii parent  și  child  sunt  apelați  în  ordinea
       înregistrării.

ERORI-IEȘIRE

       ENOMEM Nu s-a putut aloca memorie pentru a înregistra intrarea în lista de gestionare a bifurcărilor.

STANDARDE

       POSIX.1-2008.

ISTORIC

       POSIX.1-2001.

NOTE

       Atunci  când  fork(2)  este  apelat într-un proces cu mai multe fire de execuție, numai firul de execuție
       care face apelul este duplicat în procesul-copil. Intenția  inițială  a  pthread_atfork()  a  fost  de  a
       permite revenirea procesului-copil la o stare coerentă. De exemplu, în momentul apelului la fork(2), este
       posibil  ca  alte fire să aibă mutex-uri blocate care sunt vizibile în memoria din spațiul utilizatorului
       duplicată în procesul-copil. Astfel de mutex-uri nu vor fi niciodată deblocate, deoarece firele  care  au
       plasat  blocajele nu sunt duplicate în copil. Intenția lui pthread_atfork() a fost de a oferi un mecanism
       prin care aplicația (sau o bibliotecă) să se asigure că starea mutex-urilor și a altor procese și fire de
       execuție va fi readusă la o stare coerentă. În practică, această sarcină este, în general, prea  dificilă
       pentru a fi realizabilă.

       După ce un fork(2) într-un proces cu mai multe fire de execuție returnează în copil, copilul ar trebui să
       apeleze  numai  funcții asincrone sigure pentru semnale (a se vedea signal-safety(7)) până în momentul în
       care apelează execve(2) pentru a executa un nou program.

       POSIX.1 specifică faptul că pthread_atfork() nu trebuie să eșueze cu eroarea EINTR.

CONSULTAȚI ȘI

       fork(2), atexit(3), pthreads(7)

TRADUCERE

       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.

Pagini de manual de Linux 6.9.1                    2 mai 2024                                  pthread_atfork(3)